Bootstrap:关闭其他导航菜单崩溃通过JS

问题描述:

我已经在bootstrap和JS新。 目前,我有两个navbar-collapse子菜单。 我喜欢关闭所有其他人,当另一个人打开时。Bootstrap:关闭其他导航菜单崩溃通过JS

发现这个codesnippet:

$(function() { 
    $('.navbar-collapse').on('show.bs.collapse', function (e) { 
     $('.navbar-collapse').not(this).collapse('hide'); 
    }); 
}); 

我放在这个在$(document).ready(function(){...});。这个事件也会触发崩溃事件,但似乎关闭所有navbar-collapse元素。所以为什么?我怎样才能保存我的目标?

这里是演示

方法1

要折叠都在一起,你还可以使用的东西一样,可以折叠所有具有类“”的资产净值,因为打开可折叠有类“”补充说。你抓住他们使用像下面的脚本关闭那些。

$('#accordion .collapse').on('show.bs.collapse', function (e) { 
     $('#accordion .in').collapse('hide'); 
    }); 

方法2

<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 

 
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true"> 
 
    <div class="panel panel-info"> 
 
     <div class="panel-heading " role="tab" id="headingOne"> 
 
      <h4 class="panel-title"> 
 
       <a role="button" data-toggle="collapse" data-parent="#accordion" href="#per" aria-expanded="true" aria-controls="collapseOne"> 
 
        <span class="glyphicon glyphicon-minus"></span> <strong>Link 1</strong> 
 
       </a> 
 
      </h4> 
 
     </div> 
 
     <!--To make by defualt open a any panel put class "in" (without quotes)--> 
 
     <div id="per" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne"> 
 
      <div class="panel-body"> 
 
       Link 1 Link 1 Link 1 Link 1 Link 1 Link 1 
 
      </div> 
 
     </div> 
 
    </div> 
 
    <div class="panel panel-info"> 
 
     <div class="panel-heading" role="tab" id="headingTwo"> 
 
      <h4 class="panel-title"> 
 
       <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#family" aria-expanded="false" aria-controls="collapseTwo"> 
 
        <span class="glyphicon glyphicon-plus"></span> <strong>Link 2</strong> 
 
       </a> 
 
      </h4> 
 
     </div> 
 
     <div id="family" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo"> 
 
      <div class="panel-body"> 
 
       Link 2 Link 2 Link 2 Link 2 Link 2 Link 2 
 
      </div> 
 
     </div> 
 
    </div> 
 
    <div class="panel panel-info"> 
 
     <div class="panel-heading" role="tab" id="headingThree"> 
 
      <h4 class="panel-title"> 
 
       <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#social" aria-expanded="false" aria-controls="collapseThree"> 
 
        <span class="glyphicon glyphicon-plus"></span> <strong>Link 3</strong> 
 
       </a> 
 
      </h4> 
 
     </div> 
 
     <div id="social" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree"> 
 
      <div class="panel-body"> 
 
       Link 3 Link 3 Link 3 Link 3 Link 3 Link 3 Link 3 
 
      </div> 
 
     </div> 
 
    </div> 
 
</div>

+0

我在寻找其关闭/隐藏所有其他导航栏崩溃元素的方法。我不喜欢通过使用它们的id来为每个元素实现此功能。 – Kinimod

+0

此演示不使用ids,Jquery代码仅用于切换加号和减号图标。我有两种方法来解决这个问题。在你的上下文中使用最合适的。 –

+0

您正在使用例如#social引用特定元素。而“社交”就是id。 – Kinimod