2012-01-12 102 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