引导手风琴上的加号和减号图标

时间:2019-06-13 08:24:45

标签: javascript jquery

我正在尝试在引导手风琴的加号和减号图标之间切换。默认情况下,显示加号图标。当手风琴折叠时,它会显示减号图标,并隐藏加号图标。我不知道我说的话是否有意义,但对于某些人来说这确实是基本的。我只是一个初学者。

我尝试用:after和内容“ +”和内容“-”使用css进行操作,但这不是我想要的。我需要使用很棒的字体。我也尝试过js方式。

<script>

$(document).ready(function(){

// Toggle plus minus icon on show hide of collapse element
        $(".collapse").on('show.bs.collapse', function(){
            $(this).prev(".card-header").find(".fa").removeClass("fa-plus").addClass("fa-minus");
        }).on('hide.bs.collapse', function(){
            $(this).prev(".card-header").find(".fa").removeClass("fa-minus").addClass("fa-plus");
        });
    });

</script>

<body>
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
  <!-- Main content -->
    <section class="content container-fluid">
        <legend><?php echo $header_title; ?></legend>
        <br>
            <div class="row">
                <div class="col-md-12 accordion-container">
                    <div class="accordion" id="accordionExample">
                        <div class="card">

                            <div class="card-header" id="headingTwo">
                                <h2 class="mb-0" style="margin: 10px !important">
                                    <button id="btnCollapse" class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
                                    <i class="fa fa-plus"></i>
                                    Card Info
                                    </button>
                                </h2>
                            </div>

                            <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
                                <div class="card-body">
                                    <!-- SOME CONTENT -->
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
    </section>

我不知道如何检查我哪里做错了。我只想显示加号和减号图标

3 个答案:

答案 0 :(得分:1)

$(document).ready(function() {

  // Toggle plus minus icon on show hide of collapse element
  $(".collapse").on('show.bs.collapse', function() {
    $(this).prev(".card-header").find(".fa").removeClass("fa-plus").addClass("fa-minus");
  }).on('hide.bs.collapse', function() {
    $(this).prev(".card-header").find(".fa").removeClass("fa-minus").addClass("fa-plus");
  });
});

/*$("#btnCollapse").on("click", function() {

  $(".fa-plus").toggleClass("fa-minus");

})
*/
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>

<body>
  <!-- Content Wrapper. Contains page content -->
  <div class="content-wrapper">
    <!-- Main content -->
    <section class="content container-fluid">
      <legend>
        <?php echo $header_title; ?>
      </legend>
      <br>
      <div class="row">
        <div class="col-md-12 accordion-container">
          <div class="accordion" id="accordionExample">
            <div class="card">

              <div class="card-header" id="headingTwo">
                <h2 class="mb-0" style="margin: 10px !important">
                  <button id="btnCollapse" class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
                                    Card Info
                                    <i class="fa fa-plus"></i>
                                    </button>
                </h2>
              </div>

              <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
                <div class="card-body">
                  <!-- SOME CONTENT -->
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </section>

答案 1 :(得分:0)

您可以使用以下替代解决方案:

$(document).ready(function(){
    // Add minus icon for collapse element which is open by default
    $(".collapse.show").each(function(){
        $(this).prev(".card-header").find(".fa").addClass("fa-minus").removeClass("fa-plus");
    });

    // Toggle plus minus icon on show hide of collapse element
    $(".collapse").on('show.bs.collapse', function(){
        $(this).prev(".card-header").find(".fa").removeClass("fa-plus").addClass("fa-minus");
    }).on('hide.bs.collapse', function(){
        $(this).prev(".card-header").find(".fa").removeClass("fa-minus").addClass("fa-plus");
    });
});

答案 2 :(得分:0)

Alex,您的代码运行正常。请检查这个小提琴。

[https://jsfiddle.net/boilerplate/bootstrap][1]

请确保在加载jquery.js和bootstrap.js之后必须编写您的js代码。