Bootstrap 3,多个Nav来控制单个Tab-Pane

时间:2015-02-13 18:49:40

标签: javascript jquery html twitter-bootstrap unify

我想使用多组导航按钮按钮来控制单个选项卡窗格。当前,当在另一个导航组中激活新导航时,不停用先前导航。因此,在任何给定时间都会激活两个导航按钮。

First Nav菜单:

<!-- Nav Menu 1 -->             
            <ul class="nav nav-pills nav-stacked" id="myTab"> 
                <li class="active"><a href="#tab-1" data-toggle="tab">TAB ONE</a></li>
                <li><a href="#tab-2" data-toggle="tab">TAB TWO</li>
                <li><a href="#tab-3" data-toggle="tab">TAB THREE</li></ul>  

第二个导航菜单:

 <!-- Nav Menu 2 -->                
            <ul class="nav nav-pills nav-stacked" id="myTab"> 
                <li><a href="#tab-4" data-toggle="tab">TAB FOUR</a></li>
                <li><a href="#tab-5" data-toggle="tab">TAB FIVE</li>
                <li><a href="#tab-6" data-toggle="tab">TAB SIX</li> </ul>                   

选项卡面板:

<div class="tab-content" id="myTab">
   <div class="tab-pane fade in active" id="tab-1">
       <p>TAB ONE CONTENT</p>
   </div>
   <div class="tab-pane fade in active" id="tab-2">
       <p>TAB TWO CONTENT</p>
   </div>
   <div class="tab-pane fade in active" id="tab-3">
       <p>TAB THREE CONTENT</p>
   </div>
   <div class="tab-pane fade in active" id="tab-4">
       <p>TAB FOUR CONTENT</p>
   </div>
   <div class="tab-pane fade in active" id="tab-5">
       <p>TAB FIVE CONTENT</p>
   </div>
   <div class="tab-pane fade in active" id="tab-6">
       <p>TAB SIX CONTENT</p>
   </div>

同样,按钮正确控制选项卡面板,但是当点击其他导航div中的一个按钮时,前一个导航按钮未被停用。

1 个答案:

答案 0 :(得分:0)

根据我对该问题的理解,如果您点击第二组,则需要删除第一组中的class="active"链接,反之亦然。我使用快速而脏的Javascript函数实现了这一点:

HTML:

<ul class="nav nav-pills nav-stacked" id="tabGroupOne"> 
  <li class="active"><a href="#tab-1" data-toggle="tab">TAB ONE</a></li>
  <li><a href="#tab-2" data-toggle="tab">TAB TWO</a></li>
  <li><a href="#tab-3" data-toggle="tab">TAB THREE</a></li>
</ul> 

<ul class="nav nav-pills nav-stacked" id="tabGroupTwo"> 
  <li><a href="#tab-4" data-toggle="tab">TAB FOUR</a></li>
  <li><a href="#tab-5" data-toggle="tab">TAB FIVE</a></li>
  <li><a href="#tab-6" data-toggle="tab">TAB SIX</a></li> 
</ul> 

的Javascript / jQuery的:

$("#tabGroupTwo").children().click(function(e){
  $("#tabGroupOne").children().each(function(f){
    $(this).removeClass("active");
  });
});

$("#tabGroupOne").children().click(function(e){
  $("#tabGroupTwo").children().each(function(f){
    $(this).removeClass("active");
  });
});

基本上,当您单击列表一中的任何<li>项时,它将删除第二组中任何链接的活动类。反之,单击第二组中的任何链接。

另一种方法是在点击任何链接时禁用所有其他ul class="nav nav-pills"子项,但只要您将导航保持为最多两个,上述内容就足够了。

注意,您还遇到了一些html标记问题:多个ID和缺少</a>标记。这些也可能导致您的代码表现得很奇怪。

这是工作版本:

Bootply