jquery multiselect アドオンを実装して、正常に動作するようにしました。選択オプションの長いリストがあり、optgroup ごとに分けられています。optgroups は私の長いリストを整理しますが、それでもユーザーは一番下のオプションにたどり着くまでしばらくスクロールする必要があります。optgroup をデフォルトで折りたたんで、グループをクリックすると折りたたまれないようにするソリューションを探しているだけです。
optgroup をクリックした瞬間に、その下にあるすべてのオプションが自動的に選択されますが、それを防ぎ、代わりに非表示機能に置き換えます。デフォルトでは、jquery は select の optgroup をターゲットにできないことはわかっていますが、Jquery Multiple select アドオンには、どうやらあなたも許可するイベント ハンドラーがあります。サイトの半分までスクロールすると、このアドオンがサポートするすべてのイベント ハンドラーが表示されます。私はこのoptgrouptoggle
イベントに非常に興味を持っていました:
optgroup ラベルがクリックされたときに発生します。このイベントは、元のイベント オブジェクトを最初の引数として受け取り、値のハッシュを 2 番目の引数として受け取ります: js
$("#multiselect").bind("multiselectoptgrouptoggle", function(event, ui){ /* event: the original event object, most likely "click" ui.inputs: an array of the checkboxes (DOM elements) inside the optgroup ui.label: the text of the optgroup ui.checked: whether or not the checkboxes were checked or unchecked in the toggle (boolean) */ });
次のように show hide 関数を実装しようとしましたが、まだ jquery を使用したことがなく、これを完全に失敗させている可能性があります。どんな助けでも大歓迎です。
http://jsfiddle.net/akhyp/1986/
$("#selected_items").bind("multiselectoptgrouptoggle", function(event, ui){
$(this).children().show();
}, function() {
$(this).children().hide();
});