javascript - 在同一页面上 Bootstrap 多个选项卡并仅显示一个选项卡

标签 javascript jquery twitter-bootstrap tabs

我在同一个页面上有多个 Bootstrap 选项卡。当我单击一个选项卡时一切正常(它显示其内容)。但是我想在一个选项卡处于事件状态时隐藏其他选项卡。有什么办法吗?

<div class="pane-content-inner">
    <div id="guides-tabs">
        <ul class="nav nav-tabs tabs-group top">
            <li class="col-md-3 study-inn" tabindex="0" class="tab tab-1 ">
                <a data-toggle="tab" data-target="#1" class="box box-1 jquery-once-6-processed"><span tabindex="0" class="text">Harvard Medical School Overview</span></a>
            </li>
            <li class="col-md-3 study-inn" tabindex="1" class="tab tab-2">
                <a data-toggle="tab" data-target="#2" class="box box-2 jquery-once-6-processed"><span tabindex="1" class="text">Medical Program and Specialities</span></a>
            </li>
            <li class="col-md-3 study-inn" tabindex="2" class="tab tab-3">
                <a data-toggle="tab" data-target="#3" class="box box-3 jquery-once-6-processed"><span tabindex="2" class="text">Medical & Clinical Research</span></a>
            </li>
            <li class="col-md-3 study-inn" tabindex="4" class="tab tab-4">
                <a data-toggle="tab" data-target="#4" class="box box-4 jquery-once-6-processed"><span tabindex="2" class="text">Admissions</span></a>
            </li>
        </ul>
        <div class="tab-content">
            <div id="1" class="tab-pane ">
                <h2>Universities in Norway</h2>
                <p>Higher education in Norway is comprised of a mixture of both public and private universities. Some are specialized, some comprehensive, and some </p>
                </p>
            </div>
            <div id="2" class="tab-pane ">
                <h2>Universities in Norway</h2>
                <p>Higher education in Norway is comprised of a mixture of both public and private universities. Some are specialized, some comprehensive, and some Higher education in Norway is comprised of a mixture of both public and private universities. Some are specialized, some comprehensive, and some </p>
                </p>
            </div>
            <div id="3" class="tab-pane ">
                <h2>Universities in Norway</h2>
                </p>
            </div>
            <div id="4" class="tab-pane ">
                <h2>Universities in Norway</h2>
                </p>
            </div>
            </p>
        </div>
        </p>
    </div>
</div>
<div class="pane-content-inner">
    <div id="guides-tabs">
        <ul class="nav nav-tabs tabs-group top">
            <li class="col-md-3 study-inn" tabindex="5" class="tab tab-5 ">
                <a data-toggle="tab" data-target="#5" class="box box-5 jquery-once-6-processed"><span tabindex="0" class="text">Residancy</span></a>
            </li>
            <li class="col-md-3 study-inn" tabindex="6" class="tab tab-6">
                <a data-toggle="tab" data-target="#6" class="box box-6 jquery-once-6-processed"><span tabindex="1" class="text">Costs</span></a>
            </li>
            <li class="col-md-3 study-inn" tabindex="7" class="tab tab-7">
                <a data-toggle="tab" data-target="#7" class="box box-7 jquery-once-6-processed"><span tabindex="2" class="text">Medicine Undergraduate National Fees</span></a>
            </li>
            <li class="col-md-3 study-inn" tabindex="3" class="tab tab-8">
                <a data-toggle="tab" data-target="#8" class="box box-8 jquery-once-6-processed"><span tabindex="2" class="text">Medicine Undergraduate International Fees</span></a>
            </li>
        </ul>
        <div class="tab-content">
            <div id="5" class="tab-pane ">
                <h2>Universities in Norway</h2>
                <p>Higher education in Norway is comprised of a mixture of both public and private universities. Some are specialized, some comprehensive, and some </p>
                </p>
            </div>
            <div id="6" class="tab-pane ">
                <h2>Universities in Norway</h2>
                <p>Higher education in Norway is comprised of a mixture of both public and private universities. Some are specialized, some comprehensive, and some Higher education in Norway is comprised of a mixture of both public and private universities. Some are specialized, some comprehensive, and some </p>
                </p>
            </div>
            <div id="7" class="tab-pane ">
                <h2>Universities in Norway</h2>
                </p>
            </div>
            <div id="8 " class="tab-pane ">
                <h2>Universities in Norway</h2>
                </p>
            </div>
            </p>
        </div>
        </p>
    </div>
</div>

这是我到目前为止尝试过的:

$(document).ready(function() {
    $('.nav li a').click(function(e) {
        $('.nav li').removeClass('active');
        var $parent = $(this).parent();
        console.log($parent);
        if (!$parent.hasClass('active')) {
            $parent.addClass('active');
        }
        e.preventDefault();
    });
})

最佳答案

这里不需要额外的 javascript。您可以简单地使用 Bootstrap 默认代码来实现这一点。

只需确保每个选项卡的所有标识符都是唯一的,您可以像下面的笔一样进行设置:

http://codepen.io/mutualdesigns/pen/pbGjbX

<div>

  <!-- Nav tabs -->
  <ul class="nav nav-tabs" role="tablist">
    <li role="presentation" class="active"><a href="#1" aria-controls="1" role="tab" data-toggle="tab">Home</a></li>
    <li role="presentation"><a href="#2" aria-controls="2" role="tab" data-toggle="tab">Profile</a></li>
    <li role="presentation"><a href="#3" aria-controls="3" role="tab" data-toggle="tab">Messages</a></li>
    <li role="presentation"><a href="#4" aria-controls="4" role="tab" data-toggle="tab">Settings</a></li>
  </ul>

  <!-- Nav tabs -->
  <ul class="nav nav-tabs" role="tablist">
    <li role="presentation"><a href="#5" aria-controls="5" role="tab" data-toggle="tab">Home</a></li>
    <li role="presentation"><a href="#6" aria-controls="6" role="tab" data-toggle="tab">Profile</a></li>
    <li role="presentation"><a href="#7" aria-controls="7" role="tab" data-toggle="tab">Messages</a></li>
    <li role="presentation"><a href="#8" aria-controls="8" role="tab" data-toggle="tab">Settings</a></li>
  </ul>

  <!-- Tab panes -->
  <div class="tab-content">
    <div role="tabpanel" class="tab-pane active" id="1">1</div>
    <div role="tabpanel" class="tab-pane" id="2">2</div>
    <div role="tabpanel" class="tab-pane" id="3">3</div>
    <div role="tabpanel" class="tab-pane" id="4">4</div>
    <div role="tabpanel" class="tab-pane" id="5">5</div>
    <div role="tabpanel" class="tab-pane" id="6">6</div>
    <div role="tabpanel" class="tab-pane" id="7">7</div>
    <div role="tabpanel" class="tab-pane" id="8">8</div>
  </div>

</div>

关于javascript - 在同一页面上 Bootstrap 多个选项卡并仅显示一个选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38904985/

相关文章:

javascript - 如何使用我的后端从客户端 JS 发送电子邮件

javascript - php 中的两个操作两个提交按钮?

javascript - 使用大型数据集时,D3 强制布局可视化非常慢?

javascript - 使用 Webpack 的 Handlebars 返回 Javascript 代码而不是渲染 HTML

javascript - 按 "enter"键时的 IE7 不会阻止默认操作

javascript - 将动态内容设置为 iframe

javascript - jquery - 找到整数或空格时拆分(即拆分类(class)代码)

ruby-on-rails - 将 Rails 链接设为 Bootstrap 按钮

html - 带 Canvas 菜单的 Bootstrap 导航栏

html - Bootstrap 输入组插件不起作用