我试图通过单击按钮来切换所有手风琴项目的状态。默认情况下,我希望它们全部关闭。按钮应该是Open All
或Close All
。
根据docs我应该能够使用toggle()
方法?
我已将下面的当前代码包含在一个小提琴链接中。
HTML
<button id="toggleAccordions" class="btn btn-primary" type="button" data-toggle="collapse">Open / Close</button>
<div id="accordion" role="tablist">
<div class="card">
<div class="card-header" role="tab" id="headingOne">
<h5 class="mb-0">
<a data-toggle="collapse" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Collapsible Group Item #1
</a>
</h5>
</div>
<div id="collapseOne" class="collapse" role="tabpanel" aria-labelledby="headingOne" data-parent="#accordion">
<div class="card-body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird
on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table,
raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
</div>
</div>
</div>
<div class="card">
<div class="card-header" role="tab" id="headingTwo">
<h5 class="mb-0">
<a class="collapsed" data-toggle="collapse" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Collapsible Group Item #2
</a>
</h5>
</div>
<div id="collapseTwo" class="collapse" role="tabpanel" aria-labelledby="headingTwo" data-parent="#accordion">
<div class="card-body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird
on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table,
raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
</div>
</div>
</div>
<div class="card">
<div class="card-header" role="tab" id="headingThree">
<h5 class="mb-0">
<a class="collapsed" data-toggle="collapse" href="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
Collapsible Group Item #3
</a>
</h5>
</div>
<div id="collapseThree" class="collapse" role="tabpanel" aria-labelledby="headingThree" data-parent="#accordion">
<div class="card-body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird
on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table,
raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
</div>
</div>
</div>
</div>
JQuery的
$(function() {
$('#toggleAccordions').on('click', function(e) {
$('#accordion .collapse').collapse('toggle')
})
});
任何帮助表示赞赏。
这不是您的代码的确切答案,而是一个解决方案的一般概念,对我使用Bootstrap 4手风琴。
手风琴是构建的,因此当时只能显示一个面板,所以诀窍是首先删除show上的data-parent属性并重新添加到hide上来覆盖此行为。
在这种情况下,我有两个按钮。一个用于表演,一个用于隐藏。
$(function() {
$('#toggleAccordions-show').on('click', function(e) {
$('#accordion .collapse').removeAttr("data-parent");
$('#accordion .collapse').collapse('show');
})
$('#toggleAccordions-hide').on('click', function(e) {
$('#accordion .collapse').attr("data-parent","#accordion");
$('#accordion .collapse').collapse('hide');
})
});
你可以尝试下面的代码:
$(function() {
$('#toggleAccordions').on('click', function(e) {
$('#accordion .collapse').toggleClass('show');
})
});
基于Turbojohan的响应,它可以写得更短,以便您没有重复的jQuery选择器:
$(function() {
$('#toggleAccordionShow').on('click', function(e) {
$('#accordion .collapse').removeAttr("data-parent").collapse('show');
});
$('#toggleAccordionHide').on('click', function(e) {
$('#accordion .collapse').attr("data-parent","#accordion").collapse('hide');
});
});