2016-09-22 106 views
0

我已經在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元素。所以爲什麼?我怎樣才能保存我的目標?

回答

0

這裏是演示

方法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