У меня есть 3 флажка, которые переключаются между результатами. Он работает так же, как если бы я хотел бы иметь возможность фильтровать с несколькими флажками одновременно.Выберите флажки, чтобы получить результат, соответствующий всем выборам
Например, если отмечены high
и bread
, он должен отображать только один результат, так как это соответствует только одному из divs
. На данный момент он отображает что-либо с high
или bread
.
https://jsfiddle.net/f7srx0dd/12/
<input type="checkbox" class="checkbox" name="High" data-category-type="high">High
<input type="checkbox" class="checkbox" name="low" data-category-type="low" >
<input type="checkbox" class="checkbox" name="low" data-category-name="bread" >
<div id="Categories">
<div class="hide" data-category-type="high" data-category-name="pizza">high</div>
<div class="hide" data-category-type="low" data-category-name="pasta">low</div>
<div class="hide" data-category-type="low" data-category-name="pizza">low</div>
<div class="hide" data-category-type="high" data-category-name="bread">bread</div>
</div>
$('.checkbox ').on('click', function (e) {
var $this = $(this),
$links = $('.checkbox');
if ($this.hasClass('selected')) {
$this.removeClass('selected');
} else {
$this.addClass('selected');
}
$('#Categories > div').hide();
var anySelectedCheckbox = false;
$.each($links, function (k, v) {
$this = $(v);
if ($this.hasClass('selected')) {
anySelectedCheckbox = true;
var cat = $this.data('categoryType');
var nam = $this.data('categoryName');
$('#Categories > div[data-category-type="'+cat+'"]').show();
$('#Categories > div[data-category-name="'+nam+'"]').show();
}
});
if(!anySelectedCheckbox) {
$('#Categories > div').show();
}
});
Я пробовал обновлять скрипку с помощью этого кода, и он, похоже, не работает? Я что-то упускаю? –
Моя ошибка. Мне нужно было выбрать запятую, так что это либо тип, либо имя. Попробуй. – Scimonster
не могли бы вы обновить скрипку? Я не могу заставить его работать –