2012-04-01 133 views
0

我正在使用jquery定位(my,at,of)來顯示div,作爲某種按鈕的下拉列表。下面的代碼:當下拉DIV是可見jquery相對於可移動元素的位置

if ($('#myDiv').is(':hidden')) { 
    $('#myDiv').show().position({ 
     my: "left top", 
     at: "left bottom", 
     of: $("#myButton"), 
     "offset" : "0 -2px" 
    }); 

} else { 
    $('#myDiv').hide(); 
} 

按鈕可以移動(例如其他內容得到動態添加/移除,圍繞按壓按鈕)。問題是,當發生這種情況時,只有按鈕移動並且div保持放置,所以div不再相對於按鈕正確定位。

下面是一個例子小提琴:http://jsfiddle.net/2BUZU/

有有DIV始終遵循按鈕不錯方式?

我似乎無法找到這個問題的答案,但我確信我不是唯一遇到這個問題的人。

謝謝!

+0

你可以發佈演示嗎? – Joseph 2012-04-01 23:31:29

+0

div的定位應該是相對的 – Chibuzo 2012-04-01 23:33:50

+0

發佈示例演示。另外,Chibuzo,我嘗試將位置改變爲相對位置,但我需要將下拉div顯示在其他內容之上,所以我認爲這不會起作用 - 除非我誤解了你的意思? – 2012-04-01 23:54:32

回答

1

我通過添加容器div和animate函數來實現此目的。不知道這是什麼樣的解決方案,你是...後

jsFiddle DEMO

希望它能幫助!

第二個建議
找到myButton元素的position()和適當地移動myDiv

jsFiddle DEMO 2

我有一種感覺,你可以實現你需要實現使用位置和動畫功能是什麼。

再次,我希望這可以讓你更接近你的解決方案。

+0

謝謝neo108。它並不適用於我;我需要一些可以基於任何原因移動的按鈕來工作的東西,例如頁面上其他地方的某些內容被添加/刪除。但它仍然是一個有用的例子! – 2012-04-02 04:53:03

+0

我有一種感覺,你可以實現你需要的位置和動畫功能。請看我上面的第二個建議 - 編輯了答案來添加它。 – neo108 2012-04-02 05:38:37

+0

感謝您的第二個演示,neo108。但似乎div的重新定位仍然是通過增加更多內容的點擊觸發的(儘管簡潔的代碼!)。 – 2012-04-02 21:08:35

0

雖然我想讓下拉div總是自動按下它的按鈕,但對我而言似乎並不是一種簡單的方法。我知道什麼會導致按鈕移動90%的時間,所以當我觸發這個時,我正在重新定位div。所以現在工作得很好。感謝提示人們。

相關問題