0
カテゴリが選択されていない限り、1つのアイテムを非表示にしたいとします。私はこのためにfilteringStart
コールバックを使用しています。 filterizrオブジェクトからアクティブなカテゴリ配列を取得するにはどうすればよいですか?jQuery Filterizrからアクティブなカテゴリを取得する方法はありますか?
カテゴリが選択されていない限り、1つのアイテムを非表示にしたいとします。私はこのためにfilteringStart
コールバックを使用しています。 filterizrオブジェクトからアクティブなカテゴリ配列を取得するにはどうすればよいですか?jQuery Filterizrからアクティブなカテゴリを取得する方法はありますか?
Filterizrライブラリでアクティブなフィルタを取得するパブリックメソッドのように見えません。しかし、それを理解するために必要なJavaScriptを書くことはそれほど難しくありません。
<ul class="nav nav-gallery filters-filteringModeSingle" id="filteringModeSingle">
<li class="filtr-button filtr" data-fltr="all">All</li>
<li class="filtr-button filtr" data-fltr="green">Green</li>
<li class="filtr-button filtr filtr-active" data-fltr="orange">Orange</li>
<li class="filtr-button filtr" data-fltr="purple">Purple</li>
<li class="filtr-button filtr" data-fltr="mix">Mix</li>
</ul>
次のようにあなたが選択した値の配列を得ることができます::
var selected = $.map($(".filtr-active").toArray(), function(el, i) {
return $(el).data("fltr");
});
特定の値に基づいて何かを行うには、次のようなHTMLが見えるその例の一つを、使用
選択されている場合、次の操作を行うことができます:
if (selected.indexOf("green") !== -1) {
console.log("You selected green!");
}
私はそれが理に適っていることを望みます!
編集:
あなたは、セレクタを微調整することにより、非選択フィルタを得ることができます。
var notSelected = $.map($(".filtr:not(.filtr-active)").toArray(), function (el, i) {
return $(el).data("fltr");
});
ウェイン。 flitr-activeクラスに気付かなかった。 – IAmNaN
しかし、私はそれを試してみましたが、そのクラスは設定されていません。他のクラスに設定されたfilteredOutというクラスの逆がありますので、おそらく私はそれを扱うことができます。 – IAmNaN
@IAmNaN私は選択されていないフィルタを取得するためのセレクタで答えを更新しました:) –