【发布时间】:2011-10-12 21:30:10
【问题描述】:
我正在尝试构建一个简单的 jQuery 过滤器系统来显示和隐藏各种类别的元素。
问题是某些元素属于多个类别,即使其中一个过滤器被关闭,也应该保持可见。
我能想到的最合乎逻辑的解决方案是,在切换过滤器项目后,查看哪些类别仍设置为可见,并隐藏不可见的元素。
因此,我的问题在于试图弄清楚如何选择没有任何给定类的元素。
我正在尝试查找选中的类别(每个过滤器项都有一个 id:filter-category_name):
$('.filter-checked').each(function(){
checkedCategories = checkedCategories + ('.' + $(this).attr('id').replace('filter','category'));
});
然后淡出没有不再检查的item的class的元素:
$(filterCategory).filter(function(){
return $(not(checkedCategories));
}).fadeTo(500,0.1);
地点:
var filterCategory = '.'+$(this).attr('id').replace('filter','category');
(即被点击的过滤项)
我认为主要问题在于试图专门找到没有任何类别的项目仍在检查的项目,但除了用我当前的解决方案解决问题之外,如果有明显的和更多的解决这个问题的优雅方法真是太棒了。
谢谢!!
【问题讨论】: