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 相关文章推荐
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
Jul 18 Javascript
innerText 使用示例
Jan 23 Javascript
js css 实现遮罩层覆盖其他页面元素附图
Sep 22 Javascript
javascript中bind函数的作用实例介绍
Sep 28 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
Dec 16 Javascript
微信小程序 slider 详解及实例代码
Jan 10 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
Jun 12 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
Oct 31 Javascript
利用原生的JavaScript实现简单拼图游戏
Nov 18 Javascript
vue 中 命名视图的用法实例详解
Aug 14 Javascript
详解element-ui中表单验证的三种方式
Sep 18 Javascript
Vue Element校验validate的实例
Sep 21 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实现Socket服务器的代码
2008/04/03 PHP
理解php原理的opcodes(操作码)
2010/10/26 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
jQuery validata插件实现方法
2017/06/25 jQuery
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
python中的五种异常处理机制介绍
2014/09/02 Python
复习Python中的字符串知识点
2015/04/14 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
python查看数据类型的方法
2019/10/12 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
详解Python 中的容器 collections
2020/08/17 Python
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
C语言笔试题
2014/09/04 面试题
盛大笔试题
2016/11/05 面试题
创业计划书中要认真思考的问题
2013/12/28 职场文书
校庆筹备方案
2014/03/30 职场文书
党员个人对照检查材料
2014/10/01 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
Python编解码问题及文本文件处理方法详解
2021/06/20 Python