BootStrap 页签切换失效的解决方法


Posted in Javascript onAugust 17, 2017

概述

bootstrap开发标签页时,标签页显示正常,但点击时候对应内容区域没有变化。

具体症状与解决方案

1.标签页UI出现,但点击无反应,标签页UI并未随点击进行切换

先检查bootstrap.css,jQuery.js和bootstrap.js是否有正确引入,并保证引入顺序jQuery在前,bootstrap.js在后。再检查代码中是否有其他报错中止了JS。

2.标签页可以随点击进行切换,但点击后前面几条内容可以切换,但后面几条内容切换失败

产生原因:

内容区域的html结构出现错误,在单个tab中多写了一个div的结束标签,使得tab-content这一div过早的关闭,剩下的tab-pan则与原来的tab-content变成了平级的关系而不是父子关系。仔细观察,点击之后原来应该出现在tab-content区域的内容会出现在页面的下方是主要的特征。

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title>bootstrap页签切换失效</title>
 <link href="//cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet">
 <!-- 先引入jQuery,再引入bootstrap.js-->
 <script src="//cdn.bootcss.com/jquery/1.12.3/jquery.min.js"></script>
 <script src="//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">页签0</a></li>
   <li ><a href="#tab1" rel="external nofollow" data-toggle="tab">页签1</a></li>
   <li ><a href="#tab2" rel="external nofollow" data-toggle="tab">页签2</a></li>
   <li ><a href="#tab3" rel="external nofollow" data-toggle="tab">页签3</a></li>
   <li ><a href="#tab4" rel="external nofollow" data-toggle="tab">页签4</a></li>
  </ul>
 <div class="tab-content">
  <div class="tab-pane active " id="tab0">
   <div>
    <span>页签0内容</span>
   </div>
  </div>
  <div class="tab-pane fade " id="tab1">
   <div>
    <span>页签1内容</span>
   </div>
  </div>
  <div class="tab-pane fade " id="tab2">
   <div>
    <span>页签2内容,多了一个结束标签</span>
   <!-- 页签2内容多了一个结束标签-->
   </div>
   </div>
  </div>
  <div class="tab-pane fade " id="tab3">
   <div>
    <span>页签3内容,出现在页签2下方</span>
   </div>
  </div>
  <div class="tab-pane fade " id="tab4">
   <div>
    <span>页签4内容,出现在页签2下方</span>
   </div>
  </div>
 </div>
</div>
</body>
</html>

BootStrap 页签切换失效的解决方法

审查元素时看到tab-pan与tab-content在同级中出现是最明显的特征。这时候只需要查看最后一个能生效点击的页签中的代码(示例中为tab2),将多余的div结束标签去掉即可。

总结

这种错误易除了刚接触bootstrap的开发者容易遇见之外,使用模板引擎配合bootstrap进行开发的过程中,页面结构嵌套关系比较复杂的时候也容易产生这类错误,但清楚错误产生原理还有分析方法之后,解决起来并不困难。

Javascript 相关文章推荐
js刷新框架子页面的七种方法代码
Nov 20 Javascript
js 加载并解析XML字符串的代码
Dec 13 Javascript
javascript代码加载优化方法
Jan 30 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
Apr 01 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
Jun 22 Javascript
微信小程序中单位rpx和rem的使用
Dec 06 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
Feb 05 Javascript
node.js连接MongoDB数据库的2种方法教程
May 17 Javascript
jQuery 禁止表单用户名、密码自动填充功能
Oct 30 jQuery
利用vue.js实现被选中状态的改变方法
Feb 08 Javascript
三种Webpack打包方式(小结)
Sep 19 Javascript
JS实现多选框的操作
Jun 24 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
Aug 17 #Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
Aug 17 #Javascript
微信小程序滚动Tab实现左右可滑动切换
Aug 17 #Javascript
Angular实现图片裁剪工具ngImgCrop实践
Aug 17 #Javascript
jQuery Layer弹出层传值到父页面的实现代码
Aug 17 #jQuery
jQuery条件分页 代替离线查询(附代码)
Aug 17 #jQuery
vue中appear的用法
Aug 17 #Javascript
You might like
php设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
基于JQuery 选择器使用说明介绍
2013/04/18 Javascript
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
JS如何将数字类型转化为没3个一个逗号的金钱格式
2014/01/27 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
3种Jquery限制文本框只能输入数字字母的方法
2014/12/03 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
JS实现Ajax的方法分析
2016/12/20 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
2019/10/12 jQuery
优化Vue中date format的性能详解
2020/01/13 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
Python版微信红包分配算法
2015/05/04 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
python 绘制场景热力图的示例
2020/09/23 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
电厂职工自我鉴定
2014/02/20 职场文书
公司证明怎么写
2014/09/22 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
文明单位申报材料
2014/12/23 职场文书
技能培训通讯稿
2015/07/18 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书