特定のイベント (ボタン クリックなど) が発生した場合、特定の選択ボックスに対して Chosen.js を無効にしたいと考えています。
これは可能ですか?
特定のイベント (ボタン クリックなど) が発生した場合、特定の選択ボックスに対して Chosen.js を無効にしたいと考えています。
これは可能ですか?
ボタンをクリックする必要はありませんが、同様の要件がありました。特定の選択ボックスに対してChosenを有効/無効にしたかっただけです。
select
私の解決策は、 Chosen を使用したくない要素ごとに、CSS クラスを追加すること'no-chzn'
です。次にchosen.jquery.js
、次の行をコンストラクターに追加します (これは、バージョン 1.1.0 の 533 行目付近です)。
$.fn.extend({
chosen: function(options) {
if (!AbstractChosen.browser_is_supported()) {
return this;
}
return this.each(function(input_field) {
var $this, chosen;
$this = $(this);
if ($this.parent().hasClass("chosen-disable")) { return; } // Just add this line!
chosen = $this.data('chosen');
if (options === 'destroy' && chosen) {
chosen.destroy();
} else if (!chosen) {
$this.data('chosen', new Chosen(this, options));
}
});
}
});
たとえば、select with class がno-chosen
あり、次のようにします。
$("select:not('.no-chosen')").chosen();
これは、クラスが選択されていないものを除くすべての選択を取得することを意味します。