1
在引导3,

目前,当您使用引导程序的选项卡中的“活跃”类放在<li>元件上,像这样的导航窗格:更改默认引导3“标签”活动类元素

<ul class="nav navbar-nav"> 
    <li class="active"><a href="#A" data-toggle="tab">A</a></li> 
    <li><a href="#B" data-toggle="tab">B</a></li> 
    <li><a href="#C" data-toggle="tab">C</a></li> 
</ul> 

相反,我我试图让“活动”类去<a>元素,像这样:

<ul class="nav navbar-nav"> 
    <li><a class="active" href="#A" data-toggle="tab">A</a></li> 
    <li><a href="#B" data-toggle="tab">B</a></li> 
    <li><a href="#C" data-toggle="tab">C</a></li> 
</ul> 

我能够使用引导JavaScript事件的增加“活动”类<a>元素使用下面的代码,但是我无法从之前的“活动”元素中删除它,也没有阻止“活动”类继续更改<li>元素。 是否有一个简单且轻量级的解决方案将缺省行为从<li>移动到子元素<a>元素?

$('a[data-toggle="tab"]').on('show.bs.tab', function(event) { 
    $(event.target).addClass('active'); 
}); 

回答

0

变化从 'show.bs.tab' 到 'shown.bs.tab' 事件。添加行:

$(this).closest('.nav').find('.active').removeClass('active'); 

为了删除任何活动的类。

$('a[data-toggle="tab"]').on('shown.bs.tab', function(event) { 
 
    $(this).closest('.nav').find('.active').removeClass('active'); 
 
    $(event.target).addClass('active'); 
 
});
<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> 
 

 

 
<ul class="nav navbar-nav"> 
 
    <li class="active"><a href="#A" data-toggle="tab">A</a></li> 
 
    <li><a href="#B" data-toggle="tab">B</a></li> 
 
    <li><a href="#C" data-toggle="tab">C</a></li> 
 
</ul>

+0

对我的作品,谢谢! – Aender

+0

@Aender不客气 – gaetanoM