Javascript 显示和隐藏选择菜单选项

Javascript 显示和隐藏选择菜单选项,javascript,jquery,jquery-ui-selectmenu,Javascript,Jquery,Jquery Ui Selectmenu,我有一个jQuery selectmenu小部件,有大约30个选项。为了让它更有用,我只展示了最常用的15个选项。然后我有第16个选项,叫做“显示更多”。然后,我希望jQuery显示其他15个选项(在已经存在的15个选项下面) 目前,我有15个显示与显示更多按钮。但是,当单击时,它会使selectmenu(弹出窗口)消失(选择“显示更多”)。再次单击按钮将再次显示selectmenu列表,其中包含所有选项。所以,它工作了,只是在点击“显示更多”后隐藏了选项列表。有没有办法防止名单消失?我已经包括

我有一个jQuery selectmenu小部件,有大约30个选项。为了让它更有用,我只展示了最常用的15个选项。然后我有第16个选项,叫做“显示更多”。然后,我希望jQuery显示其他15个选项(在已经存在的15个选项下面)

目前,我有15个显示与显示更多按钮。但是,当单击时,它会使selectmenu(弹出窗口)消失(选择“显示更多”)。再次单击按钮将再次显示selectmenu列表,其中包含所有选项。所以,它工作了,只是在点击“显示更多”后隐藏了选项列表。有没有办法防止名单消失?我已经包括了
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());
    }
  });
});

您不仅需要防止默认值,还需要停止传播(因此,单击除了代码之外,从这一点上不会执行任何操作),如下所示:

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

您不仅需要防止默认值,还需要停止传播(因此,单击除了代码之外,从这一点上不会执行任何操作),如下所示:

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

谢谢@Aschab,但不幸的是,这没有起作用,它关闭了弹出窗口。我还尝试了“event.stopimediatepropagation();但这也不起作用。也许是因为这个事件(onChange事件)不是我们试图阻止的那个?这是selectmen(或popup)的
close()
事件?谢谢@Aschab,但不幸的是,这没有起作用,它关闭了弹出窗口。我还尝试了“event.stopimediatepropagation();但这也不起作用。也许是因为这个事件(onChange事件)不是我们试图阻止的那个?这是选择器(或弹出窗口)的
close()
事件?