2012-01-07 60 views
-1

我已經制作了一個基於<select />的盒子,可以讓它們作爲跨瀏覽器的UI使用。 問題是,我無法找到如何過濾其他選擇框內的嵌套選擇框。我的意思是,讓他們只爲點擊元素,而不是爲孩子。嵌套的多個選擇框

這裏是一個演示:http://jsfiddle.net/aspirinemaga/ejyRR/

想使他們以這種方式工作:

<div class="gui-selectbox"> 
    SELECTBOX1 
    <div class="gui-selectbox">SELECTBOX2</div> 
</div> 

我知道這很容易,但我無法找出正確的選擇,使其工作。預先感謝您的幫助和時間。

編輯 - 第二演示:http://jsfiddle.net/aspirinemaga/ejyRR/2/

回答

1

問題的數字在這裏

  1. 你打開單擊事件應該是.gui-selectbox-button,不.gui-selectbox它應該返回false,以確保它不會傳播。
  2. 你總是打電話給gui_selectbox_closeAll。您需要關閉所有不是目標的父母。由$('.gui-selectbox-dialog:visible').not($(event.target).parents('.gui-selectbox-dialog'))修復。爲按鈕做類似的事情。
  3. 你的gui_selectbox_listAction是設定值爲全部的父母。相反,您應該使用closest()
+0

試圖做你說什麼,但不能成功。第一和第二個問題是好的,但第三個我不能解決。這是一個** [link](http://jsfiddle.net/aspirinemaga/ejyRR/2/)**。你能否爲我提供第三個代碼?謝謝 – aspirinemaga 2012-01-08 13:48:52

+0

只需用'closest()'替換'parents()'調用即可。 – 2012-01-08 14:39:24

+0

在代碼的其他部分似乎是錯誤的,因爲它不起作用。 – aspirinemaga 2012-01-08 15:17:14