我試圖結合使用Isotope插件的幾個過濾器類型:自由文本搜索,多選,單選(3個獨立的組) 。同位素組合過濾器返回多選,單選和自由文本的結果
我甚至沒有精通JS/jquery,這就是爲什麼我一直依靠下面的例子(都由大衛DeSandro提供,我相信)來得到我想要的結果。
這是我codepen例如:https://codepen.io/jawtt/pen/pPaxzR
$('#select').on('click', 'input', function() {
selectFilter = $(this).attr('data-filter');
console.log(selectFilter)
$grid.isotope();
});
正如你所看到的,這絕對不是我的綁定多選擇濾波器正確的方法。我知道.on(點擊)方法不考慮未選定的項目。我知道我需要一個存儲輸入(複選框類型)字段值的變量,並且每次這些字段值更改時都會更新它。然後我需要以某種方式引用該變量在下面的「初始化同位素」功能:
var $grid = $('.grid').isotope({
itemSelector: '.element-item',
layoutMode: 'fitRows',
filter: function() {
var $this = $(this);
var searchResult = qsRegex ? $this.text().match(qsRegex) : true;
var buttonResult = buttonFilter ? $this.is(buttonFilter) : true;
var selectResult = selectFilter ? $this.is(selectFilter) : true;
return searchResult && buttonResult && selectResult;
}
});
你會發現在我的codenpen JS例如底部註釋掉的代碼。我明白這是如何工作的,但我無法將其融入到我現有的示例中。
最終結果: 我希望搜索字段,按鈕過濾器和選擇過濾器在查詢同位素網格(.grid)中的任何元素與數據過濾器值之後返回組合搜索結果。
任何幫助和修復的解釋表示讚賞!