Filter jQuery同位素-具有多个过滤器的问题

Filter jQuery同位素-具有多个过滤器的问题,filter,jquery-isotope,Filter,Jquery Isotope,我尝试在公文包中使用多个过滤器,比如使用同位素.js的页面。请查看此页面:。单个过滤器可以正常工作,但不是多个过滤器不能:(以下是我使用的一段JS代码: jQuery('.filtering li').on('click', 'a', function(e) { e.preventDefault(); if ( jQuery(this).parent().hasClass('selected') ) { return; } var filters = {}, optionSe

我尝试在公文包中使用多个过滤器,比如使用同位素.js的页面。请查看此页面:。单个过滤器可以正常工作,但不是多个过滤器不能:(以下是我使用的一段JS代码:

jQuery('.filtering li').on('click', 'a', function(e) {
e.preventDefault();

if ( jQuery(this).parent().hasClass('selected') ) {
    return;
}

var filters = {},
    optionSet = jQuery(this).parents('.option-set');

jQuery(this).parent().parent().find('li').removeClass('selected');
jQuery(this).parent().addClass('selected');

var group = optionSet.data('filter-group');
filters[group] = jQuery(this).data('filter');

var isoFilters = [];
for ( var prop in filters ) {
    isoFilters.push( filters[prop] );
}
var selector = isoFilters.join('');
var portfolioItems = jQuery(this).parent().parent().parent().parent().find('.filterable-items');
portfolioItems.isotope({ filter: selector });

console.log(selector);

return false;
}))

出于某种原因(我不知道为什么),但是
isoFilters.push(filters[prop])就是不起作用。单击第二个过滤器后,items数组将被替换为新值,而不是将其添加到此数组中。正如您在控制台中看到的,它只是用新值替换,而不是将其添加到数组中。真奇怪

以下是作者网站上的一个工作示例:

有人能帮我找出我做错了什么吗? 提前谢谢你!希望有人能帮我解决这个问题

致以最良好的祝愿,
亚历克斯

我找到了解决这个问题的办法。下面是一个正确的代码:

jQuery('.filtering li').on('click', 'a', function(e) {
e.preventDefault();

if ( jQuery(this).parent().hasClass('selected') ) {
 return;
}

jQuery(this).parent().parent().find('li').removeClass('selected');
jQuery(this).parent().addClass('selected');

var isoFilters = [];
var elems = jQuery(this).parents('.filter-wrap').find('li.selected a');
jQuery.each(elems, function(i, e){
  isoFilters.push(jQuery(e).attr('data-filter'));
});

var selector = isoFilters.join('');
var portfolioItems = jQuery(this).parent().parent().parent().parent().find('.filterable-items');
portfolioItems.isotope({ filter: selector });

console.log(selector);

return false;
}))

希望这能帮助那些遇到类似问题的人