2012-07-23 71 views
1

我在使用Mootools getPosition()函數幫助確定元素位置時遇到了一個奇怪的問題。以下是這樣的:Mootools getPosition()給出了錯誤的位置

我有一個表格,裏面有兩個表(我知道這是語義上不正確的,但我有它的工作):

<form> 
    <table> 
     <!-- rows, columns and finally inputs, selects and teaxtarea here --> 
    </table> 
    <table> 
     <!-- rows, columns and finally inputs, selects and teaxtarea here --> 
    </table> 
</form> 

這其中的Javascript Mootools的來進場。我有一個小腳本,顯示特定表單字段在該字段焦點時的錯誤,這是一個工具提示的主意。在這種情況下,此工具提示或errortip的位置由getPosition()確定。這在第一張桌子上完美工作,但是當關注第二張桌子上的一個元素時,它就像第一張桌子的高度被忽略。

這裏一個的jsfiddle鏈接:http://jsfiddle.net/Y4BVc/6/

+0

異常:遇到so.users.LowRateException! – stecb 2012-07-23 10:49:50

回答

3

getPosition(relative)會相對的位置返回到relative

只需簡單改變:

var pos = el.getPosition(el.getOffsetParent().getOffsetParent()); 

var pos = el.getPosition(); 

這將事情相對於文檔的位置。

+0

是否有另一種方法來確定元素的位置?我看到有一個參數給getPosition(),以確定用於確定位置的父代。我會努力工作。 – Ruben 2012-07-23 10:38:35

+0

我編輯了我的答案 – MMM 2012-07-23 10:42:10

+0

如果你想使它相對於表單只是爲表單分配一個id,然後使用'el.getPosition(document.getElementById(formId))' – MMM 2012-07-23 10:44:48