2016-10-05 104 views
1

我有一個約30個選項的jQuery selectmenu小部件。爲了使它更加可用,我只展示了最常用的15個選項。然後我有第16個選項叫做「顯示更多」。我想要jQuery做的是顯示其他15個選項(在15個以下)。顯示和隱藏selectmenu選項

此刻,我有15顯示與顯示更多按鈕。但點擊後,它會使selectmenu(彈出)消失(選中「顯示更多」)。再次單擊該按鈕將再次顯示帶有所有選項的selectmenu列表。所以,它的工作原理就是在點擊「show more」後隱藏選項列表。有沒有辦法阻止名單消失?我已經包含event.preventDefault(),但這似乎並沒有訣竅。

本質上,我真正想要做的就是顯示和隱藏selectmenu小部件的選項。如果有更簡單的事情,我很樂意以另一種方式做到這一點!

$(document).ready(function() { 
    $('#holderForFamilySelect').on('change', 'select#selectImplantFamily', function(){ 
    if ($(this).val() == "loadMore") { 
     event.preventDefault(); 
     $("select#selectImplantFamily option.ui-screen-hidden").removeClass("ui-screen-hidden"); 
     $("select#selectImplantFamily").selectmenu("refresh"); 
    } else { 
     loadImplantsOfFamily($(this).val()); 
    } 
    }); 
}); 

回答

0

你不僅要防止默認值,但也停止傳播(因此點擊沒有做從這一點,但你的代碼的任何東西),像這樣:

​​
+0

感謝@Aschab可惜就是沒沒有工作,它關閉彈出窗口。我也試過'event.stopImmediatePropagation();但那也沒用。 – Brad

+1

也許是因爲這個事件(onChange事件)不是我們試圖阻止的事件?這是selectmen(或者popup的)'close()'事件? – Brad