2011-10-04 76 views
1

我試圖開發一個小部件,這是一個選擇表單元素替換。它是一個塊元素,因此它可能是其容器的100%。類似這樣的:如何使用jquery檢測位置變化?

<element style="width: 100%">Please choose</element> 
<options style="display: none"> 
    <option>Option 1</option> 
</options> 

它有一個選項列表,打開點擊並調整大小和位置與觸發器元素對齊。

現在每當我調整窗口大小或更改佈局時,我需要重新定位選項列表。我想我可以很容易地綁定到window.resize()options.width()更改。唯一的問題是如何檢測元素位置的變化來重新定位選項。

是否有任何事件綁定到位置或偏移量的變化?

謝謝。 德米特里。

回答

1

語義上,選項應該是「選擇元素」的子元素。就像你知道的那樣,用傳統的select

<element style="width: 100%"> 
Please choose 
<options style="display: none"> 
    <option>Option 1</option> 
</options> 
</element> 

這樣,您就可以使用絕對定位,始終定位options到合適的位置,相對於它的父。爲此,您只需在element(或實際上任何其他position值)上指定position: relative,static


這可能是因爲你只是意味着你的HTML作爲一個簡單的例子,但你會使用標準的HTML標籤會更好(如divul,無論適合您最情況下)與連接到一個特殊的類它。

+0

謝謝!那樣做了。而且你是絕對正確的,這是非常正確的。大! – dmitrybelyakov

+0

抱歉,無法做到這一點 - 尚未獲得足夠的聲望。 – dmitrybelyakov

+0

@dmitrybelyakov你不需要聲望接受,只爲upvoting。請參閱http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – kapa