Прежде всего, извините за мой английский sh Я стараюсь изо всех сил, чтобы быть ясным.
Я использовал Изотоп для фильтрации некоторой информации в результате запроса. Работает нормально, но теперь я хочу добавить возможность фильтрации по нескольким критериям.
У меня есть следующие кнопки фильтра:
<div id="filters" class="button-group"> <button class="button is-checked" data-filter="*">Todos</button>
<button class="button" data-filter="rcivil">Resp. Civil</button>
<button class="button" data-filter="cbasica">C.Basica</button>
<button class="button" data-filter="tcompleto">T.Completo</button>
<button class="button" data-filter="triesgo">T.Riesgo</button>
</div>
С этим Javascript:
// init Isotope
var $grid = $('.grid').isotope({
itemSelector: '.grid1',
layoutMode: 'fitRows',
getSortData: {
codigo: '.codigo',
cuota: '.cuota',
}
});
$grid.isotope({
sortBy: 'cuota',
sortAscending: true
});
// filter functions
var filterFns = {
// show if number is greater than 50
numberGreaterThan50: function() {
var number = $(this).find('.number').text();
return parseInt( number, 10 ) > 50;
},
// responsabilidad civil
rcivil: function() {
var name = $(this).find('.codigo').text();
return name.match( /\b(A1|A2|A3|A4|A22|A|A10|A10 PROMO)\b/ );
},
// cobertura basica
cbasica: function() {
var name = $(this).find('.codigo').text();
return name.match( /\b(B2|B1|B|B1\-80|B\-80|E|E1)\b/ );
},
// terceros completos
tcompleto: function() {
var name = $(this).find('.codigo').text();
return name.match( /\b(C1|C2|C|C2\-80|C1\-80|Sigma Importados|S0|LB1|LB|CF)\b/ );
},
// todo riesgo
triesgo: function() {
var name = $(this).find('.codigo').text();
return name.match( /\b(T9|T14|T13|T2|TD|TD1|TD3)\b/ );
}
};
// bind filter button click
$('#filters').on( 'click', 'button', function() {
var filterValue = $( this ).attr('data-filter');
// use filterFn if matches value
filterValue = filterFns[ filterValue ] || filterValue;
$grid.isotope({ filter: filterValue });
});
// bind sort button click
$('#sorts').on( 'click', 'button', function() {
var sortByValue = $(this).attr('data-sort-by');
$grid.isotope({ sortBy: sortByValue });
});
// change is-checked class on buttons
$('.button-group').each( function( i, buttonGroup ) {
var $buttonGroup = $( buttonGroup );
$buttonGroup.on( 'click', 'button', function() {
$buttonGroup.find('.is-checked').removeClass('is-checked');
$( this ).addClass('is-checked');
});
});
Что мне делать, если я хочу выбрать больше, чем опция в в то же время? например "rcivil" и "cbasica" одновременно.
Любая помощь или идея будут более чем оценены.
Заранее спасибо.