【发布时间】:2017-11-03 01:52:02
【问题描述】:
我有一个多级侧边栏导航树,在 li 项目中带有很棒的字体图标。我希望图标在展开时从加号变为减号,并在折叠时返回加号。单击一个 li 项不应影响另一个 li 项的状态。
这是我正在使用的 jQuery 脚本:
$('.tree-toggle').click(function () {
$(this).parent().children('ul.tree').toggle(1);
$(this).parent().toggleClass('active');
});
$('.aside-list li').click(function(){
$(this).children('label').children('i').toggleClass('fa-plus-square fa-minus-square')
$(this).children('label').children('i').toggleClass('fa-caret-up fa-caret-down')
});
这是我的 HTML 结构:
<div class="well">
<ul class="nav nav-list aside-list">
<li>
<label class="tree-toggle nav-header">Category <i class="fa fa-caret-down"></i></label>
<ul class="nav nav-list tree">
<li><label class="tree-toggle nav-header"><i class="fa fa-plus-square"></i> In id sodales leo</label>
<ul class="nav nav-list tree">
<li><label class="tree-toggle nav-header"><i class="fa fa-plus-square"></i> Tortor masa</label>
<ul class="nav nav-list tree">
<li><a href="#">Lorem ipsum dolor sit amet</a></li>
<li><a href="#">Adipiscing elit</a></li>
<li><label class="tree-toggle nav-header"><i class="fa fa-plus-square"></i> Integro commodo</label>
<ul class="nav nav-list tree">
<li><a href="#">Colors</a></li>
<li><a href="#">Sizes</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul><!-- end aside-list -->
</div><!-- end well -->
目前该功能有问题,因为单击一项会改变列表中所有项的图标状态。
我也为代码制作了一个 JS Fiddle:
https://jsfiddle.net/njm9Lz4e/#&togetherjs=PRGpaib46U
【问题讨论】:
-
为什么一个元素上有4个不同的图标?如果
toggleClass上没有任何类,则会添加该类。
标签: javascript jquery html css font-awesome