Я немного новичок в javascript и jquery, и у меня есть некоторые проблемы, делающие то, что я хочу, "красивым" способом.
У меня есть веб-страница HTML, например:
<div class="list-group">
<a href="#all" id="category-all" class="list-group-item active">All</a>
<a href="#" id="category-0" class="list-group-item">Foo</a>
<a href="#" id="category-1" class="list-group-item">Bar</a>
<a href="#" id="category-2" class="list-group-item">FooBar</a>
</div>
<div class="row">
<div class="category-0">element 1</div>
<div class="category-1">element 1</div>
<div class="category-1">element 1</div>
<div class="category-0">element 1</div>
<div class="category-2">element 1</div>
<div class="category-0">element 1</div>
<div class="category-2">element 1</div>
</div>
Я хотел бы добавить какой-то "фильтр", где, если вы нажмете ссылку на определенную категорию, все элементы из других категорий исчезнут. Мне удалось сделать это, добавив класс в мой css под названием invis с "display: none", а затем написал следующее:
$( ".list-group-item" ).click(function() {
$(".list-group-item").removeClass('active');
$( this ).toggleClass("active");
var test = "." + event.target.id;
$(".category-0").addClass('invis');
$(".category-1").addClass('invis');
$(".category-2").addClass('invis');
if (test == ".category-0")
$(".category-0").removeClass('invis');
if (test == ".category-1")
$(".category-1").removeClass('invis');
if (test == ".category-2")
$(".category-2").removeClass('invis');
if (test == ".category-all") {
$(".category-0").removeClass('invis');
$(".category-1").removeClass('invis');
$(".category-2").removeClass('invis');
}
});
Это делает эту работу, но я бы хотел найти "более чистый" способ сделать это. Как я могу улучшить его?
Спасибо!