我想使用jQuery offset()函數來定位絕對定位的div。 這個想法是將它定位在DOM另一個元素的固定偏移處。這發生在具有多個嵌套div的相當複雜的環境中。當調用兩次jQuery偏移量(coords)不相干的行爲
發生的奇怪的事情是,調用它兩次會得到兩個不同的結果。對我來說,似乎沒有理由這樣做,雖然我在jQuery方面很新,所以我可能會忽略一些顯而易見的事情。
我認爲
var pos = $(document.getElementById(someElementInTheDOM)).offset();
$(document.getElementById(MyDiv)).offset(pos);
應該在同一個地方總是定位MyDiv,即使我把這個代碼的一些10倍。這正是this fiddle中發生的情況。點擊放大鏡數次,一切正常。
但是,一旦我開始添加display:none
和display:block
屬性,事情就會中斷。我試圖把它歸結爲基本的,我創建了一個小提琴here。要了解我的意思,請按放大鏡,再次點擊放大鏡,再次點擊放大鏡,用白色「X」關閉div,再次點擊放大鏡。
任何線索是怎麼回事?
只是一個想法,因爲你已經在使用jQuery,你可能想看看[jQUery UI](http://jqueryui.com/themeroller/),你也有對話框覆蓋在那裏... – Banana 2014-11-21 11:12:30
@Banana我會看看,謝謝。我只是覺得我應該在繼續學習之前正確地學習jQuery,這種奇怪的行爲讓我感到不舒服,因爲它讓我覺得我沒有把握 – dirluca 2014-11-21 11:21:48
後面發生了什麼。嘗試使用jquery'position'而不是http:// api。 jquery.com/position/ – demo 2014-11-21 11:32:30