Я пытаюсь использовать несколько фильтров на странице, похожей на портфолио, которая использует Isotope.js. Взгляните на эту страницу: http://decart-design.com/avancia-wp/vi-tilbyr/. Один фильтр работает нормально, но не несколько фильтров :( Вот фрагмент 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] );
просто не работает. После того, как я щелкну второй фильтр, массив элементов просто заменен новым значением, а не добавлен в этот массив. Как вы можете видеть в консоли, оно просто заменено новым значением, а не добавлено в массив. Это так странно ...
Вот рабочий пример с веб-сайта автора: http://isotope.metafizzy.co/demos/combination-filters.html.
Не мог бы кто-нибудь помочь мне понять, что я делаю не так? Заранее спасибо! Надеюсь, кто-нибудь поможет мне решить эту проблему.
С уважением, Алекс