8.3 下拉菜单 8.3.1 使用data-属性触发下拉菜单

8.3 下拉菜单

前面在介绍导航和按钮时介绍了下拉菜单的用法,主要是使用data-*属性来触发下拉菜单。本节将会介绍使用JS脚本触发下拉菜单。此外,本节会更系统地归纳下拉菜单的用法。
Bootstrap 的对话框插件依赖transition.jsdropdown.js 库。这两个JS 库都包含在bootstrap.jsbootstrap.min.js中。

8.3.1 使用data-*属性触发下拉菜单

使用data-*属性触发下拉菜单时只需要指定一个属性。

属性 描述
data-toggle 将该属性指定为dropdown即可。
不管是普通下拉菜单,还是按钮式下拉菜单,还是导航中的下拉菜单,都只需指定data-toggle="dropdown"即可触发下拉菜单。在这种方式下,由于不需要在事件源上指定触发哪个下拉菜单,因此**Bootstrap要求将触发事件源的按钮或链接与下拉菜单定义在同一个容器内**。

程序示例

下面代码示范了三种下拉菜单的触发方式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title> 触发下拉菜单 </title>
<link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../bootstrap/css/bootstrap-theme.min.css">
</head>

<body>
<div class="container">
<!-- 导航条 -->
<ul class="nav nav-tabs">
<li role="presentation"><a href="#">主页</a></li>
<!-- class="dropdown"表示该标签是下拉菜单的容器 -->
<li role="presentation" class="dropdown">
<!-- data-toggle="dropdown"属性使得该链接可以触发下拉菜单 -->
<!-- 触发按钮要和下来菜单放在同一个容器下 -->
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true"
aria-expanded="true">
课程体系 <span class="caret"></span>
</a>
<!-- 使用ul添加下拉菜单 -->
<ul class="dropdown-menu">
<li><a href="#">Java基础强化营</a></li>
<li><a href="#">全栈式程序员就业营</a></li>
<li><a href="#">全栈式程序员突击营</a></li>
</ul>
</li>
<li role="presentation" class="active"><a href="#">师资介绍</a></li>
<li role="presentation"><a href="#">教育理念</a></li>
<li role="presentation" class="disabled"><a href="#">退出系统</a></li>
</ul>
<!-- class="dropdown"表示该标签是下拉菜单的容器 -->
<div class="dropdown">
<!-- data-toggle="dropdown"表示该按钮可以触发下来菜单 -->
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="true">
下拉菜单(带分隔条)
<span class="caret"></span>
</button>
<!-- class="dropdown-menu"表示该列表是下拉菜单 -->
<ul class="dropdown-menu">
<li><a href="#">新建</a></li>
<li><a href="#">打开</a></li>
<li><a href="#">保存</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">退出</a></li>
</ul>
</div>
<!-- 按钮组式下拉菜单 -->
<div class="btn-group">
<!-- data-toggle="dropdown"表示该按钮可以触发下拉菜单 -->
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="true">
按钮式下拉菜单(带分隔条)
<span class="caret"></span>
</button>
<!-- 下拉菜单 -->
<ul class="dropdown-menu">
<li><a href="#">新建</a></li>
<li><a href="#">打开</a></li>
<li><a href="#">保存</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">退出</a></li>
</ul>
</div>
</div>
<script type="text/javascript" src="../jquery-3.1.1.js"></script>
<script type="text/javascript" src="../bootstrap/js/bootstrap.min.js"></script>
</body>

</html>

在该代码中定义了3个下拉菜单,分别是导航中的下拉菜单、普通下拉菜单和按钮式下拉菜单。
不管是哪种下拉菜单,我们都:

  • 将触发下拉菜单的按钮和链接与下拉菜单定义在同一个容器中,
  • 并为按钮和链接指定data-toggle="dropdown"属性,这样使用该按钮或链接即可打开下拉菜单。