【问题标题】:Bootstrap 3 Collapse - Change of icon with change of classesBootstrap 3 Collapse - 随着类的改变而改变图标
【发布时间】:2014-10-14 14:20:53
【问题描述】:

这是小提琴:http://jsfiddle.net/krish7878/6xpdeLa6/

有两个 div 的 .panel-heading 和 .panel-collapse。如果 .panel-collapse 具有“in”类,则必须将图标添加到 .panel-heading。我有它的 jquery,但问题是当类更改时图标不会更新。

HTML 代码:

<div class="sub-menu-1 panel-group" id="accordion">
<div class="panel panel-default">
    <div class="panel-heading">
        <h4 class="panel-title">
            <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
                FASHION
            </a>
        </h4>
    </div><!-- /.panel-heading -->
    <div id="collapseOne" class="panel-collapse collapse in">
        <div class="panel-body">
            <ul class="list-normal sub-menu-list">
                <li>
                    <a href="#">
                        <i class="fa fa-chevron-right"></i>
                        Man
                    </a>
                </li>
                <li>
                    <a href="#">
                        <i class="fa fa-chevron-right"></i>
                        Women
                    </a>
                </li>
                <li>
                    <a href="#">
                        <i class="fa fa-chevron-right"></i>
                        Children
                    </a>
                </li>
                <li>
                    <a href="#">
                        <i class="fa fa-chevron-right"></i>
                        Infants
                    </a>
                </li>
            </ul><!-- /.sub-menu-list -->
        </div>
    </div><!-- /#collapseOne -->
</div><!-- /.panel -->
<div class="panel panel-default">
    <div class="panel-heading">
        <h4 class="panel-title">
            <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
                SPORTS
            </a>
        </h4>
    </div><!-- /.panel-heading -->
    <div id="collapseTwo" class="panel-collapse collapse">
        <div class="panel-body">
            <ul class="list-normal sub-menu-list">
                <li>
                    <a href="#">
                        <i class="fa fa-chevron-right"></i>
                        Sports Gear
                    </a>
                </li>
                <li>
                    <a href="#">
                        <i class="fa fa-chevron-right"></i>
                        Sports Shoes
                    </a>
                </li>
                <li>
                    <a href="#">
                        <i class="fa fa-chevron-right"></i>
                        Discounted Stuff
                    </a>
                </li>
                <li>
                    <a href="#">
                        <i class="fa fa-chevron-right"></i>
                        Other Option
                    </a>
                </li>
                <li>
                    <a href="#">
                        <i class="fa fa-chevron-right"></i>
                        Other Option 2
                    </a>
                </li>
                <li>
                    <a href="#">
                        <i class="fa fa-chevron-right"></i>
                        Other Option 3
                    </a>
                </li>
            </ul><!-- /.sub-menu-list -->
        </div><!-- /.panel-body -->
    </div><!-- /#collapseTwo -->
</div><!-- /.panel -->

JS代码:

$(".panel-heading + .collapse:not(.in)").prev().append("<i class='fa fa-plus'></i>");
$(".panel-heading + .collapse.in").prev().append("<i class='fa fa-minus'></i>");

我认为每次类更改时都需要运行代码,但我不知道该怎么做,任何帮助将不胜感激。

【问题讨论】:

  • 你应该考虑切换这个 --> SO Link
  • 谢谢 Karthick,我之前看过这个问题,我想要我的设计中的加号和减号。

标签: javascript jquery html css twitter-bootstrap


【解决方案1】:

JSFIDDLE

你可以这样做:

$(document).ready(function(){
    $(".panel-heading + .collapse:not(.in)").prev().append("<i class='fa fa-plus'></i>");
    $(".panel-heading + .collapse.in").prev().append("<i class='fa fa-minus'></i>");
    $('.panel-heading a').click(function(){ 
        $('.panel').find('.collapse.in').prev().find("i").addClass("fa-plus").removeClass("fa-minus");
        $(this).parents('.panel-heading').find("i.fa-plus").removeClass("fa-plus").addClass("fa-minus");
        $(this).parents('.panel').find('.collapse.in').prev().find("i.fa-minus").removeClass("fa-minus").addClass("fa-plus");
    });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 2017-11-08
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多