Комбо-фильтрация с изотопом?
Я пытаюсь фильтровать между 6 категориями с изотопом. В настоящее время у меня это работает, так что если cat1
выбран, это показывает cat1
предметы, однако, если я выберу cat1
а также cat2
тогда это показывает оба cat1
а также cat2
Предметы. То, что я хочу сделать, это показывать только те элементы, которые имеют ОБА cat1
а также cat2
, Не просто показать их отдельно. Это возможно?
Вот мой комбофильтр
var data = {
accredited: 'seo social-media lead-generation marketing-automation blogging email-marketing'.split(' '),
};
function getComboFilter( filters ) {
var i = 0;
var comboFilters = [];
var message = [];
for ( var prop in filters ) {
message.push( filters[ prop ].join(' ') );
var filterGroup = filters[ prop ];
// skip to next filter group if it doesn't have any values
if ( !filterGroup.length ) {
continue;
}
if ( i === 0 ) {
// copy to new array
comboFilters = filterGroup.slice(0);
} else {
var filterSelectors = [];
// copy to fresh array
var groupCombo = comboFilters.slice(0); // [ A, B ]
// merge filter Groups
for (var k=0, len3 = filterGroup.length; k < len3; k++) {
for (var j=0, len2 = groupCombo.length; j < len2; j++) {
filterSelectors.push( groupCombo[j] + filterGroup[k] ); // [ 1, 2 ]
}
}
// apply filter selectors to combo filters for next group
comboFilters = filterSelectors;
}
i++;
}
var comboFilter = comboFilters.join(', ');
return comboFilter;
}
Вот пример моих кнопок (флажки)
<div class="examples-filter-button-container" id="filterButtons">
<div class="filter-buttons" data-group="accredited">
<label>
<input class="ex-button" type="checkbox" name="SEO" value=".SEO"><span>SEO</span>
</label>
</div>
</div>
1 ответ
Вы можете использовать CSS-селекторы для изотопной фильтрации,
http://isotope.metafizzy.co/v1/docs/filtering.html
Так
$container.isotope({ filter: ".cat1.cat2" });
Будут показаны только элементы, которые имеют оба класса