首页 > 解决方案 > 引导手风琴上的加号和减号图标

问题描述

我正在尝试在引导手风琴的加号和减号图标之间切换。默认情况下,显示加号图标。当手风琴折叠时,它会显示减号图标并隐藏加号图标。我不知道我所说的是否有道理,但对你们中的一些人来说这真的很基础。我只是一个初学者。

我已经尝试使用带有 :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>

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

标签: javascriptjquery

解决方案


$(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>


推荐阅读