当我将JS版本更改为3.3.7时,引导选项卡停止工作

时间:2016-08-30 19:12:34

标签: javascript jquery css twitter-bootstrap

我已经检查了v 3.3.7上的Bootstrap文档,但也许我错过了一些东西。

我的问题是,当我将CDN用于Bootstrap JS v3.3.6时,我的下拉列表(下方)无法正常工作,但是当我将其更改为v3.3.7时,它就会出现。

但是,当我更改为v3.3.7时,我的标签不再有效。

当我删除Bootstrap JS链接时,标签再次起作用。

<!doctype html>
<html>
<head>
    <title>Quiz App!</title>
    <link rel="icon" type="image/png" href="http://plainicon.com/dboard/userprod/2921_4eb4c/prod_thumb/plainicon.com-64851-256px-36c.png">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">


</head>
<body>
<div class="container">
    <div class="row">
        <div class="col-md-12">
            <h2 id="header"><span class="glyphicon glyphicon-grain"></span> <small>(in development)</small></h2> </hr>
            <ul class="nav nav-tabs" role="tablist">
                <li role="presentation" class="active"><a href="/" aria-controls="home2" data-toggle="tab"><span class="glyphicon glyphicon-home"></span></a></li>
                <li role="presentation" class="dropdown">
                    <a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
                        Featured Topics<span class="caret"></span></a>
                    <ul class="dropdown-menu">
                        <li><a href="/topics/us-presidents" data-toggle="tab">U.S. Presidents</a></li>
                        <li><a href="/topics/business" data-toggle="tab">Business & Investing</a></li>
                        <li><a href="/topics/astronomy" data-toggle="tab">Astronomy</a></li>
                        <li><a href="/topics/movies" data-toggle="tab">Movies</a></li>
                    </ul>
                </li>
                <li role="presentation"><a href="/all-quizzes" aria-controls="rankings" data-toggle="tab">All Quizzes</span></a></li>
                <li role="presentation"><a href="/create-quiz" aria-controls="stats" data-toggle="tab">Create a Quiz</span></a></li>
            </ul>
        </div>
    </div>

        {{{body}}}
</div>
</body>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

</html>

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

问题的根源是标签内链接的href。为了使引导程序j工作,链接应该引用本地内容,例如一些div id,如:

<a href="#all-quizzes" aria-controls="rankings" data-toggle="tab">All Quizzes</span></a>

Bootstrap js命中它在你的链接的相对路径上,并抛出一个错误(当你点击选项卡时,你可以在控制台中看到它。)

如果查看tabs.js的bootstrap 3.3.7源代码,你会看到它检查(第29行)被点击元素(tab)的数据目标属性,如果它是空的,则会掉落回到href(第32行)。然后它尝试将此值用作jquery选择器(第51行)来查找在您的情况下失败的元素。

例如,当您单击All Quizes选项卡时,js会尝试执行此操作: $('/all-quizzes')并抛出错误,因为它不是有效的jquery选择器。