我有一个列表(空格只是为了视觉清晰):
<li class="a"> A </li>
<li class="b"> B </li>
<li class="c"> C </li>
<li class="a b"> A B </li>
<li class="a c"> A C </li>
<li class="b c"> B C </li>
<li class="a b c"> A B C </li>
我有一系列“控制”:
<a class="show-a" href="#">A</a>
<a class="show-b" href="#">B</a>
<a class="show-c" href="#">C</a>
<a class="show-all active" href="#">ALL</a>
我有一些 CSS:
li {color: red; }
.deactivate {color: #ddd; }
a {color: #ddd; }
.active {color: blue; }
我想做两件事:
单击相应
<a>
控件时,将.deactivate
类添加/删除到相应的<li>
段,如果.show-a
单击,则应用于.deactivate
所有没有类的元素.a
。因此,从不再需要它.deactivate
的任何 s 中删除该类。<li>
反映控件中的当前选择。即添加/删除
.active
类到各自的锚链接。(这是我永远找不到答案的部分)。
笔记:
.active
在任何给定时间只能有一个控件。像单选按钮,但通过 CSS 更具样式。- 似乎更好的解决方案使用 jQuery 和 toggleClass。
RE其他答案:有很多(例如http://jsfiddle.net/Cx4uK/2/)但是
- 没有那个地址#2
- 大多数显示/隐藏而不是切换类
- 解释的很少,因此很难迭代答案并理解它们是如何工作的(这是我的最终目标)。