Я работаю над проектом для фильтрации div
с использованием checkboxes
, и до сих пор у меня он работает, но мне не хватает одного куска головоломки.jQuery - фильтрация div с помощью checkbox issue
Когда вы делаете выбор, например Slider
, он покажет единственный вариант с Slider
.
Если вы выберите Full Width
он покажет все варианты с Slider
иFull Width
Что я хочу это только варианты шоу с какSlider
и Full Width
так что вы бы не получить результат с Fader
и Full Width
Надеюсь, что это имеет смысл
$(document).ready(function() {
var sections = $('.sectionContent');
function updateContentVisibility() {
var checked = $("#filterControls :checkbox:checked");
if (checked.length) {
sections.hide();
checked.each(function() {
$("." + $(this).val()).show();
});
} else {
sections.show();
}
}
$("#filterControls :checkbox").click(updateContentVisibility);
updateContentVisibility();
});
#filterControls label {
display: block;
}
.box {
height: 100px;
background: #eee;
width: 300px;
text-align: center;
line-height: 100px;
margin: 5px;
display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="filterControls">
<label><b>Image Header Type</b>
</label>
<label>
<input type="checkbox" value="Slider" name="SliderCheck" />Slider</label>
<label>
<input type="checkbox" value="Fader" name="FaderCheck" />Fader</label>
<label>
<input type="checkbox" value="Static" name="StaticCheck" />Static</label>
<label><b>Image Header Styles</b>
</label>
<label>
<input type="checkbox" value="Full-Width" name="SliderCheck" />Full Width</label>
<label>
<input type="checkbox" value="Full-Screen" name="FaderCheck" />Full Screen</label>
<label>
<input type="checkbox" value="Arrow-Navigation" name="CustomCheck" />Arrow Navigation</label>
</div>
<div id="siteFilter">
<div class="sectionContent box Slider Full-Width Full-Screen Arrow-Navigation" style="display: inline-block;">
<a href="http://www.twelve.com.au/" target="_blank">Slider/Full Width</a>
</div>
<div class="sectionContent box Fader Full-Width Arrow-Navigation" style="display: inline-block;">
<a href="http://www.galpins.com.au/" target="_blank">Fader/Full Width</a>
</div>
<div class="sectionContent box Static Full-Width" style="display: inline-block;">
<a href="http://www.wmcaccounting.com.au/" target="_blank">Static/Full Width</a>
</div>
</div>
Возможно, мне это не хватает, но где вы итерируете все флажки и скрываете их, как только новые проверены? – bos570
Если вы проверите что-то, он найдет элемент с соответствующим классом, если вы проверите две вещи. Он найдет элементы с соответствующими классами, что я хочу. Если вы проверите две или три вещи, я хочу, чтобы результат отображал элемент со всеми этих классов. Это лучше? – webmonkey237
Что значит if (checked.length)? –