Bootstrap 显示活动内容时,3 个选项卡切换为活动状态
Bootstrap 3 tab toggle active when active content is shown
我有一些标签使用 bootstrap 3. 它的设置方式是有 2 个标签导航显示相同的内容。我似乎无法弄清楚的是,如果说选项卡 A 处于活动状态,那么两个选项卡 A 列表触发器都应该使 class 处于活动状态。现在只有在您点击的 li 触发器上。
codepen: https://codepen.io/mDDDD/pen/qBqbRXJ
codepen 的设置方式与我的项目的设置方式不完全相同,但提供了一个想法。当前,当您登陆我的页面时,有一个左侧标签导航,中间是另一个标签导航部分,当您单击中心部分时,该部分被隐藏并且标签内容淡入:
$('.tab-toggle').on('click', function () {
$('.center-nav-blocks').fadeOut('fast', function () {
$('.tab-content').fadeIn('fast');
scrollToElement('.title-row');
});
});
您可以使用 index()
方法获取被点击的 li
的索引,然后使用此索引将 class 添加到索引匹配的 li
中。
演示代码 :
$('.tab-toggle').on('click', function() {
//get index of li which is clicked
var indexs = $(this).closest('li').index()
//remove class from others
$("ul li").not($(this).closest('li')).removeClass("active")
//add class where indexs same
$("ul").find("li:eq(" + indexs + ")").not($(this).closest('li')).addClass("active")
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<ul class="nav-pills nav-stacked">
<li><a class="tab-toggle" href="#tab-a" data-value="#a" data-toggle="tab">Tab A</a></li>
<li><a class="tab-toggle" href="#tab-b" data-value="#b" data-toggle="tab">Tab B</a></li>
<li><a class="tab-toggle" href="#tab-c" data-value="#c" data-toggle="tab">Tab C</a></li>
<li><a class="tab-toggle" href="#tab-d" data-value="#d" data-toggle="tab">Tab D</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane" data-id="a" id="tab-a">A content</div>
<div class="tab-pane" data-id="b" id="tab-b">B Content</div>
<div class="tab-pane" data-id="c" id="tab-c"> C Content
</div>
<div class="tab-pane" data-id="d" id="tab-d">D content
</div>
</div>
<ul class="nav-pills nav-stacked">
<li><a class="tab-toggle" href="#tab-a" data-value="#a" data-toggle="tab">Tab A</a></li>
<li><a class="tab-toggle" href="#tab-b" data-value="#b" data-toggle="tab">Tab B</a></li>
<li><a class="tab-toggle" href="#tab-c" data-value="#c" data-toggle="tab">Tab C</a></li>
<li><a class="tab-toggle" href="#tab-d" data-value="#d" data-toggle="tab">Tab D</a></li>
</ul>
我有一些标签使用 bootstrap 3. 它的设置方式是有 2 个标签导航显示相同的内容。我似乎无法弄清楚的是,如果说选项卡 A 处于活动状态,那么两个选项卡 A 列表触发器都应该使 class 处于活动状态。现在只有在您点击的 li 触发器上。
codepen: https://codepen.io/mDDDD/pen/qBqbRXJ
codepen 的设置方式与我的项目的设置方式不完全相同,但提供了一个想法。当前,当您登陆我的页面时,有一个左侧标签导航,中间是另一个标签导航部分,当您单击中心部分时,该部分被隐藏并且标签内容淡入:
$('.tab-toggle').on('click', function () {
$('.center-nav-blocks').fadeOut('fast', function () {
$('.tab-content').fadeIn('fast');
scrollToElement('.title-row');
});
});
您可以使用 index()
方法获取被点击的 li
的索引,然后使用此索引将 class 添加到索引匹配的 li
中。
演示代码 :
$('.tab-toggle').on('click', function() {
//get index of li which is clicked
var indexs = $(this).closest('li').index()
//remove class from others
$("ul li").not($(this).closest('li')).removeClass("active")
//add class where indexs same
$("ul").find("li:eq(" + indexs + ")").not($(this).closest('li')).addClass("active")
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<ul class="nav-pills nav-stacked">
<li><a class="tab-toggle" href="#tab-a" data-value="#a" data-toggle="tab">Tab A</a></li>
<li><a class="tab-toggle" href="#tab-b" data-value="#b" data-toggle="tab">Tab B</a></li>
<li><a class="tab-toggle" href="#tab-c" data-value="#c" data-toggle="tab">Tab C</a></li>
<li><a class="tab-toggle" href="#tab-d" data-value="#d" data-toggle="tab">Tab D</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane" data-id="a" id="tab-a">A content</div>
<div class="tab-pane" data-id="b" id="tab-b">B Content</div>
<div class="tab-pane" data-id="c" id="tab-c"> C Content
</div>
<div class="tab-pane" data-id="d" id="tab-d">D content
</div>
</div>
<ul class="nav-pills nav-stacked">
<li><a class="tab-toggle" href="#tab-a" data-value="#a" data-toggle="tab">Tab A</a></li>
<li><a class="tab-toggle" href="#tab-b" data-value="#b" data-toggle="tab">Tab B</a></li>
<li><a class="tab-toggle" href="#tab-c" data-value="#c" data-toggle="tab">Tab C</a></li>
<li><a class="tab-toggle" href="#tab-d" data-value="#d" data-toggle="tab">Tab D</a></li>
</ul>