bootstrap选项卡不能单独工作

时间:2015-10-26 18:22:06

标签: jquery html css twitter-bootstrap

我有一个不基于任何众所周知的框架的网站。然而,我决定使用bootstrap标签,因为它们非常灵活且易于使用。所以我准备了这样的jsfiddle: enter link description here

不幸的是,它不起作用。这是为什么?我从cdn中获取了tab.js文件。代码非常简单:

<div class="container">
  <h2>Dynamic Tabs</h2>
  <ul id="tabs" class="nav nav-tabs">
    <li class="active"><a data-toggle="tab" href="#home">Home</a></li>
    <li><a data-toggle="tab" href="#menu1">Menu 1</a></li>
    <li><a data-toggle="tab" href="#menu2">Menu 2</a></li>
    <li><a data-toggle="tab" href="#menu3">Menu 3</a></li>
  </ul>

  <div class="tab-content">
    <div id="home" class="tab-pane fade in active">
      <h3>HOME</h3>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
    </div>
    <div id="menu1" class="tab-pane fade">
      <h3>Menu 1</h3>
      <p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
    </div>
    <div id="menu2" class="tab-pane fade">
      <h3>Menu 2</h3>
      <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.</p>
    </div>
    <div id="menu3" class="tab-pane fade">
      <h3>Menu 3</h3>
      <p>Eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>
    </div>
  </div>
</div>

CSS

.nav-tabs {
  border-bottom: 1px solid #ddd;
}

.nav-tabs:before,
.nav-tabs:after {
  display: table;
  content: " ";
}

.nav-tabs:after {
  clear: both;
}

.nav-tabs .nav-item {
  float: left;
  margin-bottom: -1px;
}

.nav-tabs .nav-item + .nav-item {
  margin-left: .2rem;
}

.nav-tabs .nav-link {
  display: block;
  padding: .5em 1em;
  border: 1px solid transparent;
  border-radius: .25rem .25rem 0 0;
}

.nav-tabs .nav-link:focus,
.nav-tabs .nav-link:hover {
  border-color: #eceeef #eceeef #ddd;
}

.nav-tabs .nav-link.disabled,
.nav-tabs .nav-link.disabled:focus,
.nav-tabs .nav-link.disabled:hover {
  color: #818a91;
  background-color: transparent;
  border-color: transparent;
}

.nav-tabs .nav-link.active,
.nav-tabs .nav-link.active:focus,
.nav-tabs .nav-link.active:hover,
.nav-tabs .nav-item.open .nav-link,
.nav-tabs .nav-item.open .nav-link:focus,
.nav-tabs .nav-item.open .nav-link:hover {
  color: #55595c;
  background-color: #fff;
  border-color: #ddd #ddd transparent;
}
.tab-content > .tab-pane {
  display: none;
}

.tab-content > .active {
  display: block;
}

JS

jQuery(document).ready(function ($) {
        $('#tabs li a').tab();
    });

3 个答案:

答案 0 :(得分:2)

我想只需添加以下代码就可以实现超级优势,您也不需要tab.js 来实现此功能

<强> Working : Demo

<强> JQuery的

$("#tabs li").click(function(){
    $("#tabs li").removeClass("active");
    $(this).addClass("active");      
    var href = $(this).find("a").attr('href');
    href = href.substring(1);
    $(".tab-content .tab-pane").removeClass("in active");
    $("#" + href).addClass("in active");
});

答案 1 :(得分:1)

您正在使用tab.js作为Bootstrap 4.0 alpha,这似乎与Stable Bootstrap 3版本略有不同。

只需包含official CDN中的所有Bootstrap 3 javascript,或者包含来自其他来源的tab.js。

答案 2 :(得分:0)

您需要包含Bootstrap的CSS才能获得标签样式:https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css