【发布时间】:2011-05-15 18:09:23
【问题描述】:
我有定义了 left 和 top 的 div 元素,没有绝对位置,我想使用 jQuery 读取 left 和 top 值。
使用$("#MyId").css("left") 在 IE 浏览器 (IE8) 中给出了预期的结果,但在 Chrome 中它返回了“auto”,尽管这些值以元素样式显式写入。
这是测试用例: http://jsfiddle.net/qCDkb/2/
注意 IE 和 Chrome 的区别。
此外,这在 jQuery 1.4.2 中运行良好,而在 jQuery 1.4.3 及更高版本中“失败”。
欢迎任何见解。 :-)
【问题讨论】:
-
按道理返回
auto是正确的行为,因为position: static不听left属性。 -
正如此处验证的那样,请注意该位置现在位于左侧 150 像素处。 jsfiddle.net/qCDkb/3位置:相对添加到css。
-
@Pekka - 我不想要实际位置,为此我可以使用 .position().left - 我在 CSS 中为该元素定义的值之后..
-
似乎是对 css 的滥用。您应该为此使用 data() 。 api.jquery.com/jQuery.data
-
@Gazler - 我不想将元素实际定位到左侧 150 像素。我希望这些值仅作为“标志”以供以后使用。可能是错误的方法.. :/