我在使用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>
页面加载,但是当我点击Filters菜单项时,它会抛出上面提到的异常而没有任何反应。
答案 0 :(得分:11)
您必须更改包含javascripts的顺序。 JQuery必须在bootstrap之前出现。
<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。