私はリストを持っています(視覚的な明確さのためだけのスペース):
<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; }
私は2つのことをしたい:
対応するコントロールがクリックされたら、クリックされた場合はそれぞれのセグメントにクラスを
<a>
追加/削除し、クラスのないすべての要素に適用します。したがって、クラスを必要としなくなったものからクラスを削除します。.deactivate
<li>
.show-a
.deactivate
.a
.deactivate
<li>
コントロールに現在の選択を反映します。
.active
つまり、クラスをそれぞれのアンカーリンクに追加/削除します。(これは私が答えを見つけることができない部分です)。
ノート:
- 一度に使用できるコントロールは1つだけ
.active
です。ラジオボタンと似ていますが、CSSを介してよりスタイルを設定できます。 - そこにあるより良い解決策はjQueryとtoggleClassを使用しているようです。
REその他の回答:たくさんあります(例:http: //jsfiddle.net/Cx4uK/2/)が
- #2に対応するものはありません
- ほとんどの場合、クラスを切り替えるのではなく、表示/非表示にします
- 説明されているものはほとんどないため、答えを繰り返して、それらがどのように機能するかを理解することは困難です(これが私の究極の目標です)。