将元素属性与 javascript 折叠方法结合使用时,引导折叠无法正常工作
Bootstrap collapse not working properly when using element attributes in combination with javascript collapse method
我正在使用Bootstrap手风琴创建一个分步过程,其中第一个手风琴中的用户有两个选项。如果选择第一个选项,则第一个手风琴应折叠,第二个手风琴应打开。如果选择第二个选项,则第一个选项应折叠,第三个选项应打开。为此,我为按钮和collapse
方法使用 onclick 事件。
当前使用 Bootstrap 手风琴示例中的代码,如上面的链接所示。
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Collapsible Group Item #1
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
<button id="btnOne" class="btn btn-default col-xs-12">
First option
</button>
<button id="btnTwo" class="btn btn-default col-xs-12">
Second option
</button>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingTwo">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Collapsible Group Item #2
</a>
</h4>
</div>
<div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
<div class="panel-body">
Second panel
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingThree">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
Collapsible Group Item #3
</a>
</h4>
</div>
<div id="collapseThree" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree">
<div class="panel-body">
Third panel
</div>
</div>
</div>
</div>
我为按钮添加了单击事件,如下所示,以显示和隐藏可折叠项。
$('#btnOne').on('click', function() {
$('#collapseOne').collapse('hide');
$('#collapseTwo').collapse('show');
});
$('#btnTwo').on('click', function() {
$('#collapseOne').collapse('hide');
$('#collapseThree').collapse('show');
});
现在问题来了:在单击任何按钮之前,默认的手风琴功能(通过使用html元素上的属性),(例如,单击一个手风琴的标题打开它并关闭其他手风琴),但是当使用javascript方法与使用这些属性的功能结合使用时,似乎存在问题。
例1:如果我打开第二个手风琴,没有按第一个手风琴中的按钮,然后打开第一个手风琴按"第一个选项"按钮打开第二个手风琴,它没有打开。JavaScript $('#collapseTwo').collapse('show')
似乎没有被触发。
示例 2:如果我直接单击第一个选项,则在页面加载后,第二个手风琴将正确打开。现在的问题是,当通过单击标题打开第一个手风琴时,它不会折叠第二个手风琴。
是否可以将 javascript 方法与 data-toggle="collapse"
和其他属性结合使用,并从两者的功能中受益?
或者,我是否需要手动(通过触发javascript方法)显示和折叠手风琴,以解决问题?
这里有一个小提琴可以尝试一下。
经过一些研究,最简单的解决方案是使用 Bootstrap 的折叠类公开的show.bs.collapse
事件折叠面板组中的所有开放可折叠对象。
$('.collapse').on('show.bs.collapse', function () {
$('#accordion').find('.collapse.in').collapse('hide');
});
相关文章:
- 引导程序/轨道-可折叠导航栏没有'我不能在手机上工作
- 流星和可折叠不工作
- 将元素属性与 javascript 折叠方法结合使用时,引导折叠无法正常工作
- 加载部分视图时引导折叠无法正常工作
- 如何使此展开/折叠常见问题解答列表正常工作
- 如何让这个可折叠的 DIV 工作
- Bootstrap导航栏折叠按钮不工作
- 可折叠onclick事件中的Jquery Mobile列表没有'动态添加时无法工作
- 可折叠菜单是't工作-参数'边栏控制器'不是函数,未定义
- Bootstrap手风琴折叠不工作
- 引导折叠部件不工作
- 需要帮助获得Bootstrap 3 Scrollspy与自动折叠移动菜单工作
- 在jQuery中展开和折叠所有不按要求工作
- 折叠菜单与jquery不工作
- 引导导航条折叠按钮不工作
- 展开和折叠行为ng表不工作
- 折叠菜单不能与锚链接一起工作
- 菜单折叠javascript在IE8中不工作
- Bootstrap:在使用折叠方法后,折叠不能正常工作
- 在AngularJS中仅打开一个项目而无法工作时折叠