我有div元素左边和顶部定义,没有绝对位置,我想使用jQuery读取左边和顶部值.
使用$("#MyId").css("left")在IE浏览器(IE8)中给出了预期的结果,但在Chrome中它返回"auto",尽管这些值是以元素样式显式写入的.
以下是测试用例:http: //jsfiddle.net/qCDkb/2/
请注意IE和Chrome之间的区别.
此外,这在jQuery 1.4.2中运行良好,在jQuery 1.4.3及更高版本中"失败".
任何见解都是受欢迎的.:-)
vta*_*ine 13
这是jQuery的奇怪行为.但是您可以使用本机javascript方法来获取css值:
$("#Panel1")[0].style.left
Run Code Online (Sandbox Code Playgroud)
该表达式将返回相应的css属性.
Pek*_*ica 10
正如在评论中讨论的那样,设置left到auto一个position: static听起来莫名其妙的权利,看到left在上下文中没有任何意义.
至于为什么Chrome和IE返回不同的值:.css()为浏览器的计算样式函数提供统一的网关,但它并不统一浏览器实际计算样式的方式.浏览器以不同的方式决定这种边缘情况并不罕见.
至于为什么jQuery 1.4.2和1.4.3以不同的方式做到这一点,我不确定,但在1.4.3的发行说明中有这个:
几乎整个CSS模块都被重写,完全专注于可扩展性.您现在可以编写自定义CSS插件,扩展.css()和.animate()提供的功能.
| 归档时间: |
|
| 查看次数: |
25789 次 |
| 最近记录: |