2

我在使 twitter bootstrap 下拉导航栏工作时遇到一些问题。我浏览了许多教程,如果我从那里复制代码,它对我不起作用。在控制台中,我收到以下错误

TypeError: $ is undefined
var old = $.fn.dropdown

这是我的代码:

<div class="container-fluid">
    <div class="row-fluid">
        <div class="span8">
            <!--Body content-->
            <div class="navbar">
                <div class="navbar-inner">
                    <ul id="tab" class="nav">
                        <li class="active"><a href="#Tab1" data-toggle="tab">Recent</a></li>
                        <li><a href="#Tab2" data-toggle="tab">Top</a></li>
                        <li><a href="#Tab3" data-toggle="tab">Near you</a></li>
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Filters <b class="caret"></b></a>
                            <ul class="dropdown-menu">
                                <li><a href="#">Filter1</a></li>
                                <li><a href="#">Filter2</a></li>
                            </ul>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
        <div class="span4">
            <!--Sidebar content-->
        </div>
    </div>
</div>

这是我的包含 - 它们加载没有问题:

    <link href="bootstrap/css/bootstrap.css" rel="stylesheet" media="screen">
    <script type="text/javascript" src="bootstrap/js/bootstrap-dropdown.js"></script> 
    <script type="text/javascript" src="jquery-1.7.2.min.js"></script> 

页面加载了,但是当我单击“过滤器”菜单项时,它会引发上述异常并且没有任何反应。

4

1 回答 1

11

您必须更改包含 javascript 的顺序。JQuery 必须在引导之前出现。

<link href="bootstrap/css/bootstrap.css" rel="stylesheet" media="screen">
<script type="text/javascript" src="jquery-1.7.2.min.js"></script> 
<script type="text/javascript" src="bootstrap/js/bootstrap-dropdown.js"></script> 

编辑,原因:Javascript 在加载后立即执行。在解析 bootstrap-dropdown.js 时,应该已经加载了 jQuery。这样 jQuery 功能将可用于 bootstrap-dropdown。

于 2012-12-28T15:47:38.463 回答