Twitter Bootstrap选项卡不起作用:当我点击它们时没有任何反应

时间:2012-03-09 07:47:58

标签: html twitter-bootstrap

我正在尝试在以下代码中实现Twitter Bootstrap选项卡,但它似乎不起作用。选项卡显示,但是当我点击它们时没有任何反应。下面是我使用的唯一代码。所有其他CSS / JS脚本都是从Twitter Bootstrap框架中复制的。

<!DOCTYPE html>
<html lang="en">
<head>
<!-- Le styles -->
<link href="assets/twitterbootstrap/css/bootstrap.css" rel="stylesheet">
<link href="assets/twitterbootstrap/css/bootstrap-responsive.css" rel="stylesheet">

</head>

<body data-spy="scroll" data-target=".subnav" data-offset="50">

<div class="container">

<!-------->
<div id="content">
    <ul class="nav nav-tabs" data-tabs="tabs">
        <li class="active"><a href="#red">Red</a></li>
        <li><a href="#orange">Orange</a></li>
        <li><a href="#yellow">Yellow</a></li>
        <li><a href="#green">Green</a></li>
        <li><a href="#blue">Blue</a></li>
    </ul>
    <div id="my-tab-content" class="tab-content">
        <div class="tab-pane active" id="red">
            <h1>Red</h1>
            <p>red red red red red red</p>
        </div>
        <div class="tab-pane" id="orange">
            <h1>Orange</h1>
            <p>orange orange orange orange orange</p>
        </div>
        <div class="tab-pane" id="yellow">
            <h1>Yellow</h1>
            <p>yellow yellow yellow yellow yellow</p>
        </div>
        <div class="tab-pane" id="green">
            <h1>Green</h1>
            <p>green green green green green</p>
        </div>
        <div class="tab-pane" id="blue">
            <h1>Blue</h1>
            <p>blue blue blue blue blue</p>
        </div>
    </div>
</div>

<script type="text/javascript">
    jQuery(document).ready(function ($) {
        $(".tabs").tabs();
    });
</script>    
</div> <!-- container -->

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.js"></script>
<script type="text/javascript" src="assets/twitterbootstrap/js/bootstrap.js"></script>
</body>
</html>

13 个答案:

答案 0 :(得分:86)

您需要在代码中添加标签插件

<script type="text/javascript" src="assets/twitterbootstrap/js/bootstrap-tab.js"></script>

嗯,它不起作用。我做了一些测试,并在以下时间开始工作:

  1. 将jQuery脚本移动(更新为1.7)到<head>部分
  2. data-toggle="tab"添加到<ul>标签元素
  3. 的链接和ID
  4. $(".tabs").tabs();更改为$("#tabs").tab();
  5. 以及其他一些无关紧要的事情
  6. 这是一个代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <!-- Le styles -->
    <link href="../bootstrap/css/bootstrap.css" rel="stylesheet">
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
    </head>
    
    <body>
    
    <div class="container">
    
    <!-------->
    <div id="content">
        <ul id="tabs" class="nav nav-tabs" data-tabs="tabs">
            <li class="active"><a href="#red" data-toggle="tab">Red</a></li>
            <li><a href="#orange" data-toggle="tab">Orange</a></li>
            <li><a href="#yellow" data-toggle="tab">Yellow</a></li>
            <li><a href="#green" data-toggle="tab">Green</a></li>
            <li><a href="#blue" data-toggle="tab">Blue</a></li>
        </ul>
        <div id="my-tab-content" class="tab-content">
            <div class="tab-pane active" id="red">
                <h1>Red</h1>
                <p>red red red red red red</p>
            </div>
            <div class="tab-pane" id="orange">
                <h1>Orange</h1>
                <p>orange orange orange orange orange</p>
            </div>
            <div class="tab-pane" id="yellow">
                <h1>Yellow</h1>
                <p>yellow yellow yellow yellow yellow</p>
            </div>
            <div class="tab-pane" id="green">
                <h1>Green</h1>
                <p>green green green green green</p>
            </div>
            <div class="tab-pane" id="blue">
                <h1>Blue</h1>
                <p>blue blue blue blue blue</p>
            </div>
        </div>
    </div>
    
    
    <script type="text/javascript">
        jQuery(document).ready(function ($) {
            $('#tabs').tab();
        });
    </script>    
    </div> <!-- container -->
    
    
    <script type="text/javascript" src="../bootstrap/js/bootstrap.js"></script>
    
    </body>
    </html>
    

答案 1 :(得分:65)

关键要素包括:

  1. class="nav nav-tabs"
  2. data-tabs="tabs"ul
  3. data-toggle="tab"
  4. href="#orange"a
  5. 内容class="tab-content"的{​​{1}}
  6. 项目div的divclass="tab-pane"
  7. 完整的代码如下:

    id

答案 2 :(得分:20)

最近their online guidelines之后的Bootstrap标签出现了问题,但data-tabs="tabs元素上的标记示例<ul>“中出现了错误。没有使用data-toggle在链接上不起作用。

答案 3 :(得分:18)

我有同样的问题,但上面的一些答案可能对我来说很棘手。

我发现其他答案可能会解决您的问题Twitter Bootstrap Js (tabs, popups, dropdown) not working in Drupal

  

jquery.js

之前 bootstrap.tab.js

答案 4 :(得分:16)

您错过了菜单网址上的data-toggle="tab"数据标记,因此您的脚本无法分辨您的标签切换位置:

<强> HTML

<ul class="nav nav-tabs" data-tabs="tabs">
    <li class="active"><a data-toggle="tab" href="#red">Red</a></li>
    <li><a data-toggle="tab" href="#orange">Orange</a></li>
    <li><a data-toggle="tab" href="#yellow">Yellow</a></li>
    <li><a data-toggle="tab" href="#green">Green</a></li>
    <li><a data-toggle="tab" href="#blue">Blue</a></li>
</ul>

答案 5 :(得分:4)

我刚刚通过在锚标记中添加 data-toggle =“tab”元素来解决此问题

<div class="container">

<!-------->
  <div id="content">

   <ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#red">Red</a></li>
<li><a data-toggle="tab"  href="#orange">Orange</a></li>
<li><a data-toggle="tab" href="#yellow">Yellow</a></li>
<li><a data-toggle="tab" href="#green">Green</a></li>
<li><a data-toggle="tab" href="#blue">Blue</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="red">
    <h1>Red</h1>
    <p>red red red red red red</p>
</div>
<div class="tab-pane" id="orange">
    <h1>Orange</h1>
    <p>orange orange orange orange orange</p>
</div>
<div class="tab-pane" id="yellow">
    <h1>Yellow</h1>
    <p>yellow yellow yellow yellow yellow</p>
</div>
<div class="tab-pane" id="green">
    <h1>Green</h1>
    <p>green green green green green</p>
</div>
<div class="tab-pane" id="blue">
    <h1>Blue</h1>
    <p>blue blue blue blue blue</p>

和 在头部添加了以下内容      http://code.jquery.com/jquery-1.7.1.js'>      

答案 6 :(得分:1)

我尝试了bootstrap文档中的代码,如下所示:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>tab demo</title>
  <link rel="stylesheet" href="bootstrap.css">
</head>
<body>
<div class="span9">
    <div class="tabbable"> <!-- Only required for left/right tabs -->
      <ul class="nav nav-tabs">
        <li class="active"><a href="#tab1" data-toggle="tab">Section 1</a></li>
        <li><a href="#tab2" data-toggle="tab">Section 2</a></li>
      </ul>
      <div class="tab-content">
        <div class="tab-pane active" id="tab1">
          <p>I'm in Section 1.</p>
        </div>
        <div class="tab-pane" id="tab2">
          <p>Howdy, I'm in Section 2.</p>
        </div>
      </div>
    </div>
</div> 
<script src="jquery.min.js"></script>
<script src="bootstrap.js"></script>
</body>
</html>

它有效。 但是,当我切换这两个<script src...>的位置时,它不起作用。所以请记得在bootstrap.js之前加载你的jquery脚本。

答案 7 :(得分:0)

对我来说,问题是我没有包括bootstrap.min.css(我只包括bootstrap-responsive.min.css)。

答案 8 :(得分:0)

实际上,还有另一种简单的方法。它适合我,但我不确定你们。 关键在于,只需在每个(选项卡窗格)中添加FADE即可。此外,您甚至不需要脚本函数或任何版本的jQuery。 这是我的代码...希望它对你们都有用。

<div class="tab-pane fade" id="Customer">
    <table class="table table-hover table-bordered">
        <tr>
            <th width="40%">Contact Person</th>
            <td><?php echo $event['Event']['e_contact_person']; ?></td>
        </tr>
    </table>
</div>
<div class="tab-pane fade" id="Delivery">
    <table class="table table-hover table-bordered">
        <tr>
            <th width="40%">Time Arrive Warehouse Start</th>
            <td><?php echo $event['Event']['e_time_arrive_WH_start']; ?></td>
        </tr>
    </table>
</div>

答案 9 :(得分:0)

当其他例子都没有时,这就解决了这个问题:

$('#myTab a').click(function (e) {
  e.preventDefault();
  $(this).tab('show');
});

答案 10 :(得分:0)

我遇到了同样的问题,直到我下载了bootstrap-tab.js并将其包含在我的脚本中,从这里下载https://code.google.com/p/fusionleaf/source/browse/webroot/fusionleaf/com/www/inc/bootstrap/js/bootstrap-tab.js?r=82aacd63ee1f7f9a15ead3574fe2c3f45b5c1027

在jquery

正下方包含bootsrap-tab.js
<script type="text/javascript" src="bootstrap/js/bootstrap-tab.js"></script>

最终代码看起来像这样:

 <!DOCTYPE html>
<html lang="en">
<head>
<link href="bootstrap/css/bootstrap.css" rel="stylesheet">
<script type="text/javascript" src="libraries/jquery.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap-tab.js"></script>
</head>

<body>

<div class="container">

<!-------->
<div id="content">
    <ul id="tabs" class="nav nav-tabs" data-tabs="tabs">
        <li class="active"><a href="#red" data-toggle="tab">Red</a></li>
        <li><a href="#orange" data-toggle="tab">Orange</a></li>
        <li><a href="#yellow" data-toggle="tab">Yellow</a></li>
        <li><a href="#green" data-toggle="tab">Green</a></li>
        <li><a href="#blue" data-toggle="tab">Blue</a></li>
    </ul>
    <div id="my-tab-content" class="tab-content">
        <div class="tab-pane active" id="red">
            <h1>Red</h1>
            <p>red red red red red red</p>
        </div>
        <div class="tab-pane" id="orange">
            <h1>Orange</h1>
            <p>orange orange orange orange orange</p>
        </div>
        <div class="tab-pane" id="yellow">
            <h1>Yellow</h1>
            <p>yellow yellow yellow yellow yellow</p>
        </div>
        <div class="tab-pane" id="green">
            <h1>Green</h1>
            <p>green green green green green</p>
        </div>
        <div class="tab-pane" id="blue">
            <h1>Blue</h1>
            <p>blue blue blue blue blue</p>
        </div>
    </div>
</div>


<script type="text/javascript">
    jQuery(document).ready(function ($) {
        $('#tabs').tab();
    });
</script>    
</div> <!-- container -->


<script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>

</body>
</html>

答案 11 :(得分:0)

由于我正在使用Bootstrap Javascript Modules而不是加载整个Bootstrap Javascript,因此我的标签无效,因为我忘记加载load/include/ node_modules/bootstrap/js/tab.js文件。

enter image description here

包括它之后,它起作用了......

祝你好运

答案 12 :(得分:-8)

只需复制脚本标记,即将bootstrap.js从头部添加到正文末尾。然后,即使没有脚本来激活选项卡,一切都应该正常工作。