拡張可能なカテゴリリストアイテムでフォントの素晴らしい「プラス」アイコンを使用しています。それらが展開状態にあるとき、「マイナス」記号を表示したい
HTML
<ul id="category-tabs">
<li><a href="javascript:void"><i class="fa fa-fw"></i>Category 1</a>
<ul>
<li><a href="javascript:void">item 1</a></li>
<li><a href="javascript:void">item 2</a></li>
<li><a href="javascript:void">item 3</a></li>
</ul>
</li>
</ul>
Jquery
$('#category-tabs li a').click(function(){
$(this).next('ul').slideToggle('500');
});
クリックしたアンカー内のi
要素のクラスを切り替えることができます
<i class="fa fa-plus-circle"></i>
それから
$('#category-tabs li a').click(function(){
$(this).next('ul').slideToggle('500');
$(this).find('i').toggleClass('fa-plus-circle fa-minus-circle')
});
デモ: フィドル
i
要素に含まれるa
要素でjQueryの toggleClass()
を呼び出すだけで、プラスアイコンとマイナスアイコンのいずれかを切り替えることができます。
...click(function() {
$(this).find('i').toggleClass('fa-minus-circle fa-plus-circle');
});
これは、fa-plus-circle
のクラスがデフォルトでi
要素に追加されることを前提としていることに注意してください。
i
要素のクラス定義を使用して、コードを変更できます。
<a href="javascript:void"><i class="fa fa-plus-circle"></i>Category 1</a>
次に、複数のクラスでtoggleClass
を使用して、プラス/マイナス状態を表すクラスを切り替えることができます。
$('#category-tabs li a').click(function(){
$(this).next('ul').slideToggle('500');
$(this).find('i').toggleClass('fa-plus-circle fa-minus-circle');
});
一般的かつ簡単に次のように機能します。
<script>
$(document).ready(function () {
$('i').click(function () {
$(this).toggleClass('fa-plus-square fa-minus-square');
});
});
</script>
ここでCSSのみを使用して試すことができる別の解決策があります:私は別の投稿に投稿された答えです: jQuery Accordionはクリック時に素晴らしいアイコンクラスを変更します
<ul id="category-tabs">
<li><a href="javascript:void"><i class="fa fa-plus-circle"></i>Category 1</a>
<ul>
<li><a href="javascript:void">item 1</a></li>
<li><a href="javascript:void">item 2</a></li>
<li><a href="javascript:void">item 3</a></li>
</ul>
</li> </ul>
// Jquery
$(document).ready(function() {
$('li').click(function() {
$('i').toggleClass('fa-plus-square fa-minus-square');
});
});