2012-11-18 81 views
0

如何直接檢索相對於其他元素的位置數組([left,top])? 我以爲我可以這樣做以下事情:使用方法位置檢索相對於其他元素的位置()

var newPos = $.position({ 
    my: "left top", 
    at: "right top", 
    of: $(ElementPositionedAgainstTo) 
}); 

但它給我的錯誤。
因此,我只做類似於創建隱藏div的解決方法,使用隱藏div對'ElementPositionedAgainstTo'執行位置方法,然後獲取隱藏div的位置。

function getPopupPosition (parent_el) { 
     var jDiv = $("<div id='hidden_div'></div>"); 
     jDiv 
      .appendTo("body") 
      .css("position", "absolute") 
      .position({ 
       my: "left top", 
       at: "right top", 
       of: $(parent_el) 
     }); 
    var thePosition = jDiv.position(); 
    jDiv.remove(); 
    return thePosition; 
}; 

有沒有什麼更好的方法來做到這一點?

回答

0

jQueryUI的的.POSITION()實用程序狀態:

jQuery的UI .POSITION()方法允許一個元件相對於所述窗口,文件,另一元件,或 光標/鼠標的位置,而不擔心抵消父母。

注意:jQuery UI不支持定位隱藏元素

解決方法是改爲使用visibility:hidden,獲取位置,然後快速隱藏div。

+0

是的,我的意思是,除了創建未使用的div以獲取相對位置外,沒有任何其他優雅的方法嗎? –

+0

您可以使用jQuery中的$ .offset()或$ .position()'方法獲取元素的位置。他們不需要源元素可見 - 只是一個目標。但是,之後你必須自己做定位數學。 –

相關問題