2014-12-08 98 views
0

所以我試圖做的是工具提示/彈出窗口。現在我試圖確保您使用的是按鈕格式還是隻是基於按鈕/錨點位置定位工具提示的錨文本,以便基本上無論使用哪個元素輸出正確的位置。設置與單擊元素的偏移量相同的新元素時偏移位置錯誤

FIDDLE GOES HERE

正如你會發現,如果你點擊按鈕或鏈接,會出現兩個警報:

// $el is essentially $(this) for the clicked element 
var linkPosition = $el.offset(); 
alert(linkPosition.top); 

然後我提醒:

// $popover is the created popover based on the position of the $el (this instance) 
var popoverPosition = $popover.offset(); 
alert(popoverPosition.top); 

什麼您會注意到,在第一個警報實例中,瀏覽器返回8,第二個實例28這混淆了我很大的,因爲我期待這兩個值是一樣的偏移酥料餅的設置要偏移的按鈕,你可以在這裏看到:

$popover.css({ 
    top: linkPosition.top, 
)}; 

誰能幫助我理解爲什麼價值是不同的?至於JQuery狀態偏移

jQuery的不支持獲取隱藏 元素的偏移座標或佔邊框,邊距或填充的 體元素上設置。

但是,對於我所做的,我覺得這應該輸出正確的值。

任何想法?謝謝。

請注意:它看起來像我用twitter引導程序,但我沒有,我只是使用類似的方法風格的演示,謝謝。

+0

嘗試浮動鏈接到右,再次點擊,讓我知道你得到了什麼? – 2014-12-08 02:53:01

+0

將鏈接向右移動是什麼...?順便說一句,除了在不同的地方同樣的事情,它什麼都不做。 – mdixon18 2014-12-08 03:17:11

+0

我試着解釋一下,如果你把它浮起來,它會讀取相同的偏移量()。頂部按鈕.. .offset()方法允許我們檢索元素的當前位置(相對於文檔)。 – 2014-12-08 03:26:22

回答

0

你會得到不同的價值,因爲Javascript不會等到您的element過境到它的新位置,所以它會採用舊值和alert它們。

試着把一些timeout拿到offset然後alert他們。

我把一些timeout在代碼中看到:

http://jsfiddle.net/egycjo7b/4/

相關問題