2016-10-05 64 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