我左边有一些过滤器。每个过滤器都有一个id。该过滤器的id用于过滤某些在其类中具有过滤器ID的结果。
过滤器指产品的特征..例子
<a id="filter_colorRED">RED</a>
...
<li id="item4" class="filter_colorBLUE">Blah Blah</li>
<li id="item5" class="filter_colorRED ">Blah Blah</li>
<li id="item6" class="filter_colorRED filter_colorBLACK">Blah Blah</li>
我正在寻找找到应禁用哪些过滤器的最佳方法。禁用过滤器应该是可见项类中不存在的过滤器。
例如,如果应用了colorBlue,则应禁用BLACK和BLACK,因为只有具有BLUE类的<li>
不包含RED或BLACK。
我唯一的想法是每个过滤器检查结果.hasclass(filter's id)
,但我认为这很差。还有其他想法吗?
答案 0 :(得分:1)
简单方法:
$("a").click(function () {
$("li").hide().hasClass(this.id).show();
});
您可以选择变体:
$("a").click(function () {
var a = this;
$("li").toggle(function() { return $(this).hasClass(a.id); });
});
toggle()
接受一个返回true或false的函数,以显示或隐藏元素。您可以在toggle()
函数中执行一些更复杂的计算。如果你只检查hasClass()
,第一种方法就是更好的方法。