2016-10-05 11 views
1

約30のオプションを持つjQuery selectmenuウィジェットがあります。これをより使いやすくするために、最も一般的に選択されている15のオプションのみを表示しています。その後、「もっと見る」という16番目のオプションがあります。 jQueryがやりたいことは、他の15個のオプションを表示することです(既に存在する15個以下)。selectmenuオプションの表示と非表示

現時点では、15個以上のボタンを表示しています。しかし、クリックすると、選択メニュー(ポップアップ)が消えます(「もっと見る」が選択されています)。ボタンをもう一度クリックすると、すべてのオプションを含む選択メニューリストが再度表示されます。だから、それは働いています、それは単に "もっと見る"をクリックした後にオプションのリストを隠していることです。リストが消えないようにする方法はありますか?私はevent.preventDefault()を含んでいますが、それはそのトリックをやっているようには見えません。

私が本当にやりたいことは、選択メニューウィジェットのオプションを表示して非表示にすることだけです。もっと簡単なことがあれば、別のやり方でやっていいです!

$(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

はデフォルトを防ぐためにも伝播を停止するだけでなく、必要があります(ので、この点が、あなたのコードから何かをdoesntのクリック)このように、:

​​
+0

おかげ@Aschabが、残念ながらそれのdidnそれはうんざりしてポップアップを閉じた。また、私は 'event.stopImmediatePropagation();しかしそれはどちらもうまくいかなかった。 – Brad

+1

おそらく、このイベント(onChangeイベント)が防止しようとしているイベントではないからでしょうか? selectmen(またはpopupの) 'close()'イベントですか? – Brad

関連する問題