首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > 跨浏览器开发 >

求解jquery 1.4.2严重有关问题

2012-03-20 
求解jquery 1.4.2严重问题$(body).append(div style\top:expression(documentElement.scrollTop+doc

求解jquery 1.4.2严重问题
$("body").append("<div style=\"top:expression(documentElement.scrollTop+documentElement.clientHeight);\"></div>");

以上代码,竟然出错。。。
我用的是jquery 1.4.2

[解决办法]
expression里面内容有问题.
$("body").append("<div style=\"top:expression(300);\">sss</div>");

[解决办法]
先别说jq有错,先看看你的代码有没有错,你先把documentElement.scrollTop+documentElement.clientHeight放变量里面,看看有没有问题,然后根据变量来组合成div.
[解决办法]
$("body").append("<div style=\"top:expression("+(documentElement.scrollTop+documentElement.clientHeight)+");\"></div>");

这样看看?
[解决办法]

CSS code
$("body").append("<div style=\"top:expression("+ documentElement.scrollTop+documentElement.clientHeight+ ");\"></div>");
[解决办法]
lz,那不用转义了
JScript code
$("body").append("<div style=‘top:expression(documentElement.scrollTop+documentElement.clientHeight);’></div>");这个我之前有写过,没问题,ok!
[解决办法]
我昨天告诉你之前,已经试过,直接documentElement.scrollTop不行,找不到这个对象,必须给加上document.documentElement.scrollTop,但还不行,输出了document.documentElement.scrollTop+后面那个,看一下,是0.无论在BODY内加什么内容,始终是0.但如果直接改成0,倒也可以.但这没什么意义.所以告诉你如果是300那样的值就行了.

现在又给你改了一下.原因虽然没时间找官方资料,但可以猜测,在expression里可以用其它一些属性,但好像没法用document.documentElement.scrollTop.否则,也没什么说得过去的解释.

HTML code
<script src="http://code.jquery.com/jquery-1.4.2.min.js"></script><script type="text/javascript">$(document).ready(function(){    var v=document.documentElement.scrollTop+document.documentElement.clientHeight;    $("body").append("<div style=\"position:absolute;background:red;top:expression("+v+");\">dddddd</div>");    alert("重设一下");    v=200;    $("body").append("<div style=\"position:absolute;background:red;top:expression("+v+");\">dddddd</div>");    });</script><body>ss<div id="aa">jj</div></body>
[解决办法]
你原来的没有position:absolute;表现不一样.第一个按你原来的.第二个我又添加一个有位置移动的.
你下面发的那堆,我没看.你先看了我这个,有问题说明白点,我再看看.
HTML code
<script src="http://code.jquery.com/jquery-1.4.2.min.js"></script><script type="text/javascript">$(document).ready(function(){    var v=document.documentElement.scrollTop+document.documentElement.clientHeight;    $("body").append("<div style=\"background:red;top:expression("+v+");\">dddddd</div>");    alert("重设一下");    v=200;    $("body").append("<div style=\"position:absolute;background:red;top:expression("+v+");\">dddddd</div>");    });</script><body>ss<div id="aa">jj</div></body>
[解决办法]
expression 这个根本不是W3C的语法,建议弃用
[解决办法]
top:expression(documentElement.scrollTop+documentElement.clientHeight);

JQ不是这么用的,先建立对象,再赋值$.CSS()属性;JQ是跨浏览器的,这种写法如果成立也只支持IE。


[解决办法]


[解决办法]
top:expression(documentElement.scrollTop+documentElement.clientHeight);
documentElement.scrollTop+documentElement.clientHeight这部分算成数值再传入
[解决办法]
楼主可不可以分步执行啊?
$("body").append("<div id="test"></div>");
$("#test").css();
在.css()中添加样式
[解决办法]
我十一也作了个小游,今天刚回来。才看到你的留言。

你说试了用低版本的JQ可以,这当然说明版本在一些实现上有差异。至于具体的1.4.2里为什么有这个问题,我之前没碰到也就没研究过,找了下比较能够相关的资料,几乎没有。

眼前要解决这个,你可以变通一下,用JS监听事件,在事件里进行位置控制,当然,这个你肯定是想得到的,只是想弄明白究竟是怎么回事。如果有时间的话,你可以去看看JQ在这部分的源代码,比较一下两个版本的代码差异,应该能想明白。以往看过一些你的回复,感觉你JS基础还可以,自己看看吧。
[解决办法]
window.setTimeout(function(){
$("body").append("<div style=\"top:expression(documentElement.scrollTop+documentElement.clientHeight);\"></div>");
}, 0);
[解决办法]
我是来看 楼主头像的

热点排行