【问题标题】:bootstrap collapse: change display of toggle button icons and text引导折叠:更改切换按钮图标和文本的显示
【发布时间】:2013-10-03 18:19:25
【问题描述】:

我正在使用 Twitter Bootstrap 创建可折叠的文本部分。按下 + 按钮时会展开这些部分。我的html代码如下:

Demo link

<div class="panel-group" id="accordion">
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <button type="button" class="btn btn-primary" data-toggle="collapse" data-target="#demo">
          <span class="glyphicon glyphicon-chevron-down"></span> Open
        </button>
      </h4>
    </div>
    <div id="demo" class="panel-collapse collapse in">
      <div class="panel-body">
        Contents:Thank you to help me solve the problem, you're a great guy!
      </div>
    </div>
  </div>
</div>

稍后,我需要更改文本、按钮图标并展开。

开放:

<button type="button" class="btn btn-primary" data-toggle="collapse" data-target="#demo">
  <span class="glyphicon glyphicon-chevron-up"></span> Close
</button>

关闭:

<button type="button" class="btn btn-primary" data-toggle="collapse" data-target="#demo">
  <span class="glyphicon glyphicon-chevron-down"></span> Open
</button>

【问题讨论】:

    标签: twitter-bootstrap twitter-bootstrap-3 collapse


    【解决方案1】:

    也可以通过css样式来实现。

    在css中添加样式:

    .text-toogle[aria-expanded=false] .text-expanded {
      display: none;
    }
    .text-toogle[aria-expanded=true] .text-collapsed {
      display: none;
    }
    

    并在 html 中使用:

    <a class="btn btn-default text-toogle" data-toggle="collapse" data-target="#tabsNavigation" aria-expanded="false">
        <span class="text-collapsed">More info</span>
        <span class="text-expanded">Less info</span>
    
        <i class="fa fa-angle-right"></i>
    </a>
    

    请记得添加属性

    aria-expanded="false"
    

    和类

    text-toogle
    

    链接/按钮。

    【讨论】:

    【解决方案2】:

    基于:https://stackoverflow.com/a/16870379/1596547

    $('button span').parent().click(function () {
    if($('button span').hasClass('glyphicon-chevron-down'))
    {
       $('button').html('<span class="glyphicon glyphicon-chevron-up"></span> Close'); 
    }
    else
    {      
        $('button').html('<span class="glyphicon glyphicon-chevron-down"></span> Open'); 
    }
    }); 
    

    【讨论】:

      【解决方案3】:

      如果您使用的是 jQuery,请使用 toggleClass

      $('div.toggler').click(function(){
        $('div.toggler span').toggleClass('glyphicon-chevron-down glyphicon-chevron-up');
      });
      

      在这里工作JSFiddle

      【讨论】:

        【解决方案4】:

        我发现这个问题和答案很有帮助。我删除了 parent() 方法并为我的 + 按钮添加了一个 id,以避免在切换 + 时更改其他按钮。

        $('#more').click(function () {
        if($('button span').hasClass('glyphicon-chevron-down'))
        {
            $('#more').html('<span class="glyphicon glyphicon-chevron-up"></span> Less Info'); 
        }
        else
        {      
            $('#more').html('<span class="glyphicon glyphicon-chevron-down"></span> More Info'); 
        }
        }); 
        

        http://jsfiddle.net/maybolles/opbyvbv4/2/

        【讨论】:

          【解决方案5】:

          使用此 javascript 更改图标

          $(document).ready(function(){
              $("#demo").on("hide.bs.collapse", function(){
                  $(".btn").html('<span class="glyphicon glyphicon-collapse-down"></span> Open');
              });
              $("#demo").on("show.bs.collapse", function(){
                  $(".btn").html('<span class="glyphicon glyphicon-collapse-up"></span> Close');
              });
              $("#demo1").on("hide.bs.collapse", function(){
                  $(".btn1").html('<span class="glyphicon glyphicon-collapse-down"></span> Open');
              });
              $("#demo1").on("show.bs.collapse", function(){
                  $(".btn1").html('<span class="glyphicon glyphicon-collapse-up"></span> Close');
              });
          });
          

          【讨论】:

          • 投反对票,因为这是很多不必要的 DOM 工作,可以很容易地用一个简单的 toggleClass 代替,它本身可以在 CSS 中完成并使用本机引导功能。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-08-07
          • 2013-04-25
          • 2018-04-02
          • 2021-11-04
          • 1970-01-01
          • 2016-02-29
          • 1970-01-01
          相关资源
          最近更新 更多