BootStrap 頁(yè)簽切換失效的解決方法
概述
bootstrap開(kāi)發(fā)標(biāo)簽頁(yè)時(shí),標(biāo)簽頁(yè)顯示正常,但點(diǎn)擊時(shí)候?qū)?yīng)內(nèi)容區(qū)域沒(méi)有變化。
具體癥狀與解決方案
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中多寫(xiě)了一個(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的開(kāi)發(fā)者容易遇見(jiàn)之外,使用模板引擎配合bootstrap進(jìn)行開(kāi)發(fā)的過(guò)程中,頁(yè)面結(jié)構(gòu)嵌套關(guān)系比較復(fù)雜的時(shí)候也容易產(chǎn)生這類錯(cuò)誤,但清楚錯(cuò)誤產(chǎn)生原理還有分析方法之后,解決起來(lái)并不困難。
相關(guān)文章
javascript利用鍵盤(pán)控制小方塊的移動(dòng)
這篇文章主要為大家詳細(xì)介紹了javascript利用鍵盤(pán)控制小方塊的移動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
在js文件中如何獲取basePath處理js路徑問(wèn)題
在jsp中,我們可以用el表達(dá)式直接獲取basePath,但是在單獨(dú)js文件中不能用el表達(dá)式,下面與大家分享下js文件中如何獲取basePath,感興趣的朋友可以參考下2013-07-07
js獲取html頁(yè)面節(jié)點(diǎn)方法(遞歸方式)
這篇文章主要介紹了js使用遞歸方式獲取html頁(yè)面節(jié)點(diǎn)的方法,大家可以參考使用吧2013-12-12
layui表格數(shù)據(jù)復(fù)選框回顯設(shè)置方法
今天小編就為大家分享一篇layui表格數(shù)據(jù)復(fù)選框回顯設(shè)置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
Bootstrap每天必學(xué)之簡(jiǎn)單入門(mén)
相信大家閱讀了Bootstrap第一篇文章后,對(duì)Bootstrap充滿了探索欲望,小編也對(duì)Bootstrap產(chǎn)生了興趣,所以今天再整理一篇關(guān)于Bootstrap的入門(mén)介紹,希望大家喜歡。2015-11-11
微信小程序訂閱消息(java后端實(shí)現(xiàn))開(kāi)發(fā)
這篇文章主要介紹了微信小程序訂閱消息(java后端實(shí)現(xiàn))開(kāi)發(fā),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06

