【发布时间】:2016-12-08 00:52:26
【问题描述】:
我正在引导程序中创建一个手风琴。我将其设置为在单击打开我想要的面板时更改面板标题和字形图标。此外,当我单击另一个面板时,前一个面板将重置为关闭状态。
但是,我遇到的问题是,如果我单击打开后关闭的同一个面板,样式会显示为“打开”状态like so.
我可以做些什么来确保如果我单击一个关闭的面板,它会重置为关闭状态?下面是我正在使用的 JQuery 代码。
$('.panel-clr').click(function () {
$(this).addClass('on');
$(this).find('span').removeClass('glyphicon-chevron-right');
$(this).find('span').addClass('glyphicon-chevron-down');
});
$('.panel-clr').click(function () {
$('.panel-clr').not(this).removeClass('on');
$('.panel-clr').not(this).find('span').removeClass('glyphicon-chevron-down');
$('.panel-clr').not(this).find('span').addClass('glyphicon-chevron-right');
});
具体区域的CSS如下:
.panel-clr.on {
background-color: #9D1E3A;
color: white; }
Bootstrap 是很好的衡量标准:
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading alternate panel-clr" data-toggle="collapse" data-parent="#accordion" data-target="#collapse1">
<h4 class="panel-title">
<span class="glyphicon glyphicon-chevron-right"></span>
<a data-toggle="collapse" data-parent="#accordion" href="#collapse1">
Collapsible Group 1
</a>
</h4>
</div>
<div id="collapse1" class="panel-collapse collapse">
<div class="panel-body">
Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat.
</div>
</div>
</div>
</div>
更新:我尝试了 CSS 转换方法,但似乎没有任何效果。
【问题讨论】:
-
你试过 toggleClass() 吗?那你就不需要用 not() 重复同样的功能了
-
toggleClass 一次性改变它们
-
你不必为此使用 JS。看看我在上面那个帖子中的回答。只需使用折叠的类来确定您的面板是否打开并为您的 CSS 添加适当的样式。
-
@makshh 我正在尝试使用您的方法,但似乎没有任何效果。
标签: jquery css twitter-bootstrap