【发布时间】:2015-02-26 06:43:23
【问题描述】:
我正在使用导航过滤器来突出显示在几个列表中的某些项目。单击每个导航按钮时,将在属于该类别的项目周围添加相应的边框。我在 jsFiddle 中有一个非常简化的代码版本。
//what do i do here? if/else
$('li#all-btn').click(function() {
$("#projects").find("li.wrap").toggleClass("highlight-all");
});
jsFiddle 并没有像我的原始代码那样突出显示所有这些(添加黑色边框),但我想将其更改为它将用各自的边框颜色突出显示每个项目的位置。我也喜欢打开和关闭边框的功能。
我认为实现这一点的最佳方法是在 jQuery 中使用 if/else 语句,例如 IF 项目包含此类,THEN toggleClass("respective class")。我怎样才能达到这个效果?
编辑:对不起,我可能没有说得足够清楚。因此,目标是在单击 all-btn 时,每个项目都将根据它们各自的颜色突出显示。就像现在一样,每个都将突出显示为黑色,但目标是显示所有颜色。例如,网页设计将以红色突出显示,图形设计以绿色突出显示,平面设计以蓝色突出显示,所有这些都通过单击全部按钮。
【问题讨论】:
-
api.jquery.com/hasclass。要注意的另一件事是您的 JS 已经在执行您所描述的操作。
$("#projects").find("li.wrap").toggleClass("highlight-all");将切换highlight-all 类,如果#projects 里面的li 有一个wrap 类。 -
我已经编辑了目标。目标是在单击全部时使它们全部突出显示,但每个都有自己的颜色,而不是黑色。
-
这将使用相同的 JS 处理,但添加到您的 CSS。我会为你做一个简单的例子。
标签: jquery css if-statement jquery-effects