2012-01-12 112 views
2

其他人有位置()工作奇怪在IE中的问题?我试图返回集中放置的div的左侧位置。 Chrome返回342,这是正确的。 IE9返回0.5。那是什么?jQuery的位置()不工作在IE9

var sp = $('.jcarousel-container').position(); 
    alert(sp.left) 

回答

6

似乎.offset()确实在IE9的工作在你的jsfiddle例如:

http://jsfiddle.net/fme6V/7/

下面的代码:

var sp = $('.jcarousel-container').offset(); 
alert(sp.left) 
+0

杰出。非常感谢 – 2012-01-12 14:55:49

0

我已经使用该代码工作。也许你可以用它来纠正你自己的问题。

http://jsfiddle.net/fme6V/

+0

好的。我可能错过了一些重要的信息。 div有一个设定的大小,相对位置和左右边距设置为自动,所以它位于屏幕中间。 – 2012-01-12 14:47:21

+1

你可以在jsfiddle中发布你的代码吗?这样看起来会更容易一些。 ;) – Jeffrey 2012-01-12 14:48:07

+0

http://jsfiddle.net/fme6V/1/ – 2012-01-12 14:48:54

1

我来的唯一workaraund要解决的办法是做如下事情: var xpos_inside_parent = the_child.offset()。left - the_parent.offset ()。剩下; 它为我工作,但我希望它很快就会在jQuery中修复。如果通过CSS(例如'left:20px;')由CSS设置position()在IE9中的作用,但这对我来说是微不足道的,因为如果我通过CSS设置位置,则它已经是已知的,并且不需要通过jquery来检索它。

以下示例显示它不适用'margin:0 auto'居中元素。它还显示了我的临时修复减除补偿: http://jsfiddle.net/maxoriola/MAwAH/4/

+0

谢谢。这真棒,甚至在IE11中也是相关的。知道position()在ie和其他浏览器中是相对的,但是你的工作很容易实现。 – Jake 2015-10-16 21:24:15