8.5.3 使用JS切换标签页

8.5.3 使用JS切换标签页

使用JS切换标签页也非常简单。tab.js插件为导航链接提供了tab()方法,只要调用该方法时传入"show"字符串参数即可显示对应的内容标签。
此外,如果希望切换标签页时使用过渡动画,只要为每个内容标签都指定.fade样式即可。

程序示例

如下代码示范了如何使用JS切换标签页。

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
76
<!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">
<script type="text/javascript" src="../jquery-3.1.1.js"></script>
<script type="text/javascript" src="../bootstrap/js/bootstrap.min.js"></script>
</head>

<body>
<div class="container">
<!-- 导航条 -->
<ul class="nav nav-tabs" id="tabNav">

<li class="active">
<!-- href="#java"指明要触发ID为java的标签页 -->
<a href="#java">疯狂Java讲义</a>
</li>
<li>
<!-- 通过href="#android"指定要触发的标签页 -->
<a href="#android">疯狂Android讲义</a>
</li>
<!-- 下拉菜单 -->
<li class="dropdown">
<!-- 下拉菜单触发按钮 -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">前端图书
<span class="caret"></span>
</a>
<!-- 下拉菜单内容 -->
<ul class="dropdown-menu">
<!-- 通过href="#android"指定要触发的标签页 -->
<li><a href="#html">疯狂HTML 5讲义</a></li>
<!-- 分割条 -->
<li role="separator" class="divider"></li>
<!-- 通过href="#android"指定要触发的标签页 -->
<li><a href="#front">疯狂前端开发讲义</a></li>
</ul>
</li>
</ul>
<!-- 标签页内容面板 -->
<div class="tab-content">
<!-- 标签页 fade:动画效果-->
<div class="tab-pane fade active" id="java">
<h3>疯狂Java讲义</h3>
<p>必读的Java学习经典,你懂的,不多说。</p>
</div>
<div class="tab-pane fade" id="android">
<h3>疯狂Android讲义</h3>
<p>最全面、最详细的Android学习图书,全面覆盖Android开发手册</p>
</div>
<div class="tab-pane fade" id="html">
<h3>疯狂HTML 5讲义</h3>
<p>全面、细致的前端开发基础图书,全面深入介绍HTML 5/CSS 3/JavaScript知识。</p>
</div>
<div class="tab-pane fade" id="front">
<h3>疯狂前端开发讲义</h3>
<p>前端开发的进阶图书,全面深入介绍jQuery/AngularJS/Bootstrap等框架。</p>
</div>
</div>
</div>
<script type="text/javascript">
// 处理导航条上的链接标签的点击事件
$("#tabNav a").click(function () {
// 调用该标签的tab方法
// 1号代码
$(this).tab("show");
});
</script>
</body>

</html>

在该代码示例中,删除了导航链接中所有的data-*属性,但修改了链接的href属性(href属性可代替data-target属性),每个href属性值都是一个ID选择器,这样Bootstrap即可知道该导航链接要打开哪个内容标签。
1号代码调用了导航链接的tab()方法以显示该导航链接对应的内容标签,这样该标签页组件即可实现正常切换。