嗨,我已经使用此 js 代码成功设置了具有多个下拉菜单的同位素过滤 -
jQuery(function() {
var $container = $('#isocontent'),
$select = $('div#filterGroup select');
filters = {};
$container.isotope({
itemSelector: '.box'
});
$select.change(function() {
var $this = $(this);
var $optionSet = $this;
var group = $optionSet.attr('data-filter-group');
filters[group] = $this.find('option:selected').attr('data-filter-value');
var isoFilters = [];
for (var prop in filters) {
isoFilters.push(filters[prop])
}
var selector = isoFilters.join('');
$container.isotope({
filter: selector
});
return false;
});
});
在同一页面上,我可以使用 quicksearch.js 插件和同位素设置实时搜索输入字段,方法是使用此代码 -
<script type="text/javascript">
$(function () {
$('input#id_search').quicksearch('#isocontent.box');
});
</script>
<script type="text/javascript">
$(function() {
var $container = $('#isocontent');
$container.isotope({
itemSelector: '.box'
});
$('input#filter').quicksearch('#isocontent .box', {
'show': function() {
$(this).addClass('quicksearch-match');
},
'hide': function() {
$(this).removeClass('quicksearch-match');
}
}).keyup(function(){
setTimeout( function() {
$container.isotope({ filter: '.quicksearch-match' }).isotope();
}, 100 );
});
});
</script>
实时搜索和下拉菜单可以工作,但它们不能一起工作。进行搜索时,它会找到应有的内容 - 隐藏不相关的内容 - 但在使用下拉菜单进行过滤时,它似乎会重置或忽略实时搜索完成的过滤。有没有办法让这两个功能一起工作,并可能将脚本组合成一个脚本?
任何帮助表示赞赏,谢谢。