当前位置: 代码迷 >> 跨浏览器开发 >> 求解jquery 1.4.2严重有关问题
  详细解决方案

求解jquery 1.4.2严重有关问题

热度:7539   发布时间:2013-02-26 00:00:00.0
求解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。
  相关解决方案