引导折叠:更改切换按钮图标和文本的显示
Posted
技术标签:
【中文标题】引导折叠:更改切换按钮图标和文本的显示【英文标题】: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>
【问题讨论】:
【参考方案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
链接/按钮。
【讨论】:
这对我有用,但是我被“toggle”的奇怪拼写吓跑了。 urbandictionary.com/define.php?term=Toogle【参考方案2】:基于:https://***.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 中完成并使用本机引导功能。以上是关于引导折叠:更改切换按钮图标和文本的显示的主要内容,如果未能解决你的问题,请参考以下文章