[英]How to hide panels when one bootstrap is active?
我正在创建一个引导面板。 它有3个面板。 面板1,面板2,面板3。 该面板正常工作。
我的逻辑:
但我也想利用空间。 那就是活动面板应该放在首位。 这样我也可以保持空间。 (所有活动面板应排在第一位)
这是我现有的代码:
HTML
<div class="container">
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
Panel #1<span class="glyphicon glyphicon-chevron-up"></span>
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in">
<div class="panel-body">
panel 1 content
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
Panel #2 <span class="glyphicon glyphicon-chevron-up"></span>
</a>
</h4>
</div>
<div id="collapseTwo" class="panel-collapse collapse">
<div class="panel-body">
panel 2 content
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseThree">
Panel #3<span class="glyphicon glyphicon-chevron-down"></span>
</a>
</h4>
</div>
<div id="collapseThree" class="panel-collapse collapse">
<div class="panel-body">
panel 3 content
</div>
</div>
</div>
</div>
</div>
剧本:
$('.collapse').on('shown.bs.collapse', function(){
$(this).parent().find(".glyphicon-chevron-down").removeClass("glyphicon glyphicon-chevron-down").addClass("glyphicon glyphicon-chevron-up");
}).on('hidden.bs.collapse', function(){
$(this).parent().find(".glyphicon-chevron-up").removeClass("glyphicon glyphicon-chevron-up").addClass("glyphicon glyphicon-chevron-down");
});
有任何建议我如何使用Bootstrap折叠面板完成此操作?
活动面板应排在第一位
为了移动到活动标签的第一个位置,jQuery中的解决方案是:
$('#accordion').prepend($(this).closest('div.panel-default'));
在第一个位置移动时,您可以保存面板的当前位置,以便再次单击该面板(唯一可见)时,可以显示所有面板,并且可以将当前面板放置在正确的位置:
$(this).closest('div.panel-default')
.insertAfter($('div.container div.panel-default').eq(idx))
因此,该代码段是:
$('.collapse').on('show.bs.collapse', function () { $(this).parent().find(".glyphicon-chevron-down").removeClass("glyphicon glyphicon-chevron-down").addClass("glyphicon glyphicon-chevron-up"); $(this).closest('div.panel-default').attr('idx', $(this).closest('div.panel-default').index()); $('#accordion').prepend($(this).closest('div.panel-default')); $('div.container div.panel-default').not($(this).closest('div.panel-default')).hide(); }).on('hide.bs.collapse', function () { $(this).parent().find(".glyphicon-chevron-up").removeClass("glyphicon glyphicon-chevron-up").addClass("glyphicon glyphicon-chevron-down"); }); $('#accordion a.accordion-toggle').on('click', function (e) { if ($('div.container div.panel-default:visible').not($(this).closest('div.panel-default')).length == 0) { var idx = $(this).closest('div.panel-default').attr('idx'); $('div.container div.panel-default').show(); $(this).closest('div.panel-default').insertAfter($('div.container div.panel-default').eq(idx)) } });
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <div class="container"> <div class="panel-group" id="accordion"> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseOne"> Panel #1<span class="glyphicon glyphicon-chevron-up"></span> </a> </h4> </div> <div id="collapseOne" class="panel-collapse collapse in"> <div class="panel-body"> panel 1 content </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo"> Panel #2 <span class="glyphicon glyphicon-chevron-down"></span> </a> </h4> </div> <div id="collapseTwo" class="panel-collapse collapse"> <div class="panel-body"> panel 2 content </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseThree"> Panel #3<span class="glyphicon glyphicon-chevron-down"></span> </a> </h4> </div> <div id="collapseThree" class="panel-collapse collapse"> <div class="panel-body"> panel 3 content </div> </div> </div> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.