3

使用 jquery,我编写了以下高度复杂的代码:

val = 100;
n.css('left', val /* + 'px' */);
console.log(val, n.css('left'));

它的控制台输出是:

100, "90px"

为什么呢...?

在此先感谢您的帮助

编辑:这是一个示例: http: //jsfiddle.net/RaznH/1/ 您需要缩小浏览器(例如使用“ctrl -”)并打开控制台才能显示效果

4

3 回答 3

1

您需要position在您的元素上声明静态(相对、绝对或固定)以外的其他元素,否则它将不起作用。

以评论中的示例为例:http: //jsfiddle.net/VqH9x/1/当您声明正确的位置时,一切正常。

于 2013-05-25T17:55:25.880 回答
0

你不应该使用它。相反,使用:

.offset().left

因此,您将拥有以下代码:

console.log(val, n.offset().left);

或者可能是针对您的问题,它基于浏览器,它相对于文档进行解释。

来自jQuery API

获取第一个元素的当前坐标,或设置匹配元素集中每个元素相对于文档的坐标。

于 2013-05-25T17:44:04.927 回答
0

好吧,这似乎是一个 webkit 错误,实际的 jquery 票在这里:http ://bugs.jquery.com/ticket/4993和 webkit 的错误报告在这里:https://bugs.webkit.org/show_bug。 cgi?id=105979

谢谢您的帮助

于 2013-05-28T05:30:50.427 回答