Я пытаюсь создать простую систему фильтров jQuery для отображения и скрытия элементов различных категорий.
Проблема в том, что некоторые элементы принадлежат нескольким категориям и должны оставаться видимыми, даже если один из фильтров отключен.
Самое логичное решение, которое я могу придумать, состоит в том, чтобы после переключения элемента фильтра увидеть, какие категории по-прежнему установлены как видимые, и скрыть элементы, которые не отображаются.
Таким образом, моя проблема заключается в попытке выяснить, как выбрать элементы, которые не имеют ни одного из заданных классов.
Я пытаюсь найти отмеченные категории (каждый элемент фильтра имеет идентификатор: имя_фильтра-категории ):
$('.filter-checked').each(function(){
checkedCategories = checkedCategories + ('.' + $(this).attr('id').replace('filter','category'));
});
А затем исчезают элементы, у которых нет класса элемента, который больше не проверяется:
$(filterCategory).filter(function(){
return $(not(checkedCategories));
}).fadeTo(500,0.1);
где:
var filterCategory = '.'+$(this).attr('id').replace('filter','category');
(это элемент фильтра, по которому щелкнули)
Я думаю, что основная проблема заключается в том, чтобы попытаться найти именно те элементы, которые не имеют какого-либо класса элементов, которые все еще проверяются, но кроме решения проблемы с моим текущим решением, если есть очевидное и более элегантный способ решить эту проблему было бы фантастическим.
Спасибо !!