使用最新版本的Bootstrap和内置的手风琴功能,有没有办法将按钮的文字改为不同的东西?
例如:我有一个显示文本的按钮'查找咖啡馆'当点击时,手风琴打开并显示一个列表。但是,我希望文本更改为显示关闭。
我认为我应该使用click
和html
函数,但不知道如何安排它们。
HTML:
<div id="accordion" class="accordion">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseOne">Find Cafe
</a>
<div id="collapseOne" class="accordion-body collapse in">
<div class="accordion-inner">
Anim pariatur cliche...
</div>
</div>
</div>
</div>
JS:
$('.collaspe').collapse();
答案 0 :(得分:3)
你没有使用Bootstrap。你只需使用jQuery:
$('a.accordion-toggle').click(function() {
if ( $(this).next('.accordion-body').hasClass('in') ) {
$(this).text('Close');
} else {
$(this).text('Find Cafe');
}
});
答案 1 :(得分:2)
你可以在没有JS的情况下完成这个
.toggle-accordion:before {
content:'see more'
}
.toggle-accordion[aria-expanded="true"]:before {
content:'close';
}
答案 2 :(得分:2)
您可以使用jquery
执行此操作 $('#your-button-id').click(function(){
$(this).text(function(i,old){
return old=='Find Cafe' ? 'Close' : 'Find Cafe';
});
});
清洁&amp;简单:)
答案 3 :(得分:1)
如果您需要在模板中配置单个文本,请将演示文稿与功能分开。
$('body').on('click', '[data-toggle="collapse"]', function() {
console.log(this);
var _self = $(this);
var _content = $(_self.attr('data-target'));
var _originalText = _self.attr('data-text');
if ( _content.hasClass('in') ) {
_self.text(_self.attr('data-textexp'));
} else {
_self.text(_self.attr('data-text'));
}
});