BootStrap 頁(yè)簽切換失效的解決方法
概述
bootstrap開發(fā)標(biāo)簽頁(yè)時(shí),標(biāo)簽頁(yè)顯示正常,但點(diǎn)擊時(shí)候?qū)?yīng)內(nèi)容區(qū)域沒有變化。
具體癥狀與解決方案
1.標(biāo)簽頁(yè)UI出現(xiàn),但點(diǎn)擊無(wú)反應(yīng),標(biāo)簽頁(yè)UI并未隨點(diǎn)擊進(jìn)行切換
先檢查bootstrap.css,jQuery.js和bootstrap.js是否有正確引入,并保證引入順序jQuery在前,bootstrap.js在后。再檢查代碼中是否有其他報(bào)錯(cuò)中止了JS。
2.標(biāo)簽頁(yè)可以隨點(diǎn)擊進(jìn)行切換,但點(diǎn)擊后前面幾條內(nèi)容可以切換,但后面幾條內(nèi)容切換失敗
產(chǎn)生原因:
內(nèi)容區(qū)域的html結(jié)構(gòu)出現(xiàn)錯(cuò)誤,在單個(gè)tab中多寫了一個(gè)div的結(jié)束標(biāo)簽,使得tab-content這一div過(guò)早的關(guān)閉,剩下的tab-pan則與原來(lái)的tab-content變成了平級(jí)的關(guān)系而不是父子關(guān)系。仔細(xì)觀察,點(diǎn)擊之后原來(lái)應(yīng)該出現(xiàn)在tab-content區(qū)域的內(nèi)容會(huì)出現(xiàn)在頁(yè)面的下方是主要的特征。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>bootstrap頁(yè)簽切換失效</title>
<link rel="external nofollow" rel="stylesheet">
<!-- 先引入jQuery,再引入bootstrap.js-->
<script src="http://cdn.bootcss.com/jquery/1.12.3/jquery.min.js"></script>
<script src="http://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<style>
.content{
width: 60%;
margin: auto;
}
</style>
</head>
<body>
<div class="content">
<ul class="nav nav-tabs" id='consume_tab'>
<li><a href="#tab0" rel="external nofollow" data-toggle="tab">頁(yè)簽0</a></li>
<li ><a href="#tab1" rel="external nofollow" data-toggle="tab">頁(yè)簽1</a></li>
<li ><a href="#tab2" rel="external nofollow" data-toggle="tab">頁(yè)簽2</a></li>
<li ><a href="#tab3" rel="external nofollow" data-toggle="tab">頁(yè)簽3</a></li>
<li ><a href="#tab4" rel="external nofollow" data-toggle="tab">頁(yè)簽4</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active " id="tab0">
<div>
<span>頁(yè)簽0內(nèi)容</span>
</div>
</div>
<div class="tab-pane fade " id="tab1">
<div>
<span>頁(yè)簽1內(nèi)容</span>
</div>
</div>
<div class="tab-pane fade " id="tab2">
<div>
<span>頁(yè)簽2內(nèi)容,多了一個(gè)結(jié)束標(biāo)簽</span>
<!-- 頁(yè)簽2內(nèi)容多了一個(gè)結(jié)束標(biāo)簽-->
</div>
</div>
</div>
<div class="tab-pane fade " id="tab3">
<div>
<span>頁(yè)簽3內(nèi)容,出現(xiàn)在頁(yè)簽2下方</span>
</div>
</div>
<div class="tab-pane fade " id="tab4">
<div>
<span>頁(yè)簽4內(nèi)容,出現(xiàn)在頁(yè)簽2下方</span>
</div>
</div>
</div>
</div>
</body>
</html>

審查元素時(shí)看到tab-pan與tab-content在同級(jí)中出現(xiàn)是最明顯的特征。這時(shí)候只需要查看最后一個(gè)能生效點(diǎn)擊的頁(yè)簽中的代碼(示例中為tab2),將多余的div結(jié)束標(biāo)簽去掉即可。
總結(jié)
這種錯(cuò)誤易除了剛接觸bootstrap的開發(fā)者容易遇見之外,使用模板引擎配合bootstrap進(jìn)行開發(fā)的過(guò)程中,頁(yè)面結(jié)構(gòu)嵌套關(guān)系比較復(fù)雜的時(shí)候也容易產(chǎn)生這類錯(cuò)誤,但清楚錯(cuò)誤產(chǎn)生原理還有分析方法之后,解決起來(lái)并不困難。
相關(guān)文章
詳解JS去重及字符串奇數(shù)位小寫轉(zhuǎn)大寫
本篇文章主要介紹了詳解JS去重及字符串奇數(shù)位小寫轉(zhuǎn)大寫 ,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-12
javascript檢測(cè)是否聯(lián)網(wǎng)的實(shí)現(xiàn)代碼
這篇文章主要介紹了javascript檢測(cè)是否聯(lián)網(wǎng)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-09-09
用js動(dòng)態(tài)添加html元素,以及屬性的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇用js動(dòng)態(tài)添加html元素,以及屬性的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07
js實(shí)現(xiàn)密碼強(qiáng)度檢測(cè)【附示例】
下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)密碼強(qiáng)度檢測(cè)【附示例】。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-03-03
javascript foreach中如何獲取數(shù)組下標(biāo)/index
這篇文章主要介紹了javascript foreach中如何獲取數(shù)組下標(biāo)/index問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
layer彈出的iframe層在執(zhí)行完畢后關(guān)閉當(dāng)前彈出層的方法
今天小編就為大家分享一篇layer彈出的iframe層在執(zhí)行完畢后關(guān)閉當(dāng)前彈出層的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
javascript實(shí)現(xiàn)下雪效果【實(shí)例代碼】
下面小編就為大家?guī)?lái)一篇javascript實(shí)現(xiàn)下雪效果【實(shí)例代碼】。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考2016-05-05
深入理解JavaScript中實(shí)例對(duì)象和new命令
典型的面向?qū)ο缶幊陶Z(yǔ)言(比如C++和 Java),都有“類”(class)這個(gè)概念。所謂“類”就是對(duì)象的模板,對(duì)象就是“類”的實(shí)例,下面這篇文章主要給大家介紹了關(guān)于JavaScript中實(shí)例對(duì)象和new命令的相關(guān)資料,需要的朋友可以參考下2022-12-12
微信小程序使用echarts獲取數(shù)據(jù)并生成折線圖
這篇文章主要介紹了微信小程序使用echarts獲取數(shù)據(jù)并生成折線圖,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10

