详解Bootstrap插件


Posted in Javascript onApril 25, 2016

在前面 布局组件 章节中所讨论到的组件仅仅是个开始。Bootstrap 自带 12 种 jQuery 插件,扩展了功能,可以给站点添加更多的互动。即使您不是一名高级的 JavaScript 开发人员,您也可以着手学习 Bootstrap 的 JavaScript 插件。利用 Bootstrap 数据 API(Bootstrap Data API),大部分的插件可以在不编写任何代码的情况被触发。

站点引用 Bootstrap 插件的方式有两种

单独引用:使用 Bootstrap 的个别的 *.js 文件。一些插件和 CSS 组件依赖于其他插件。如果您单独引用插件,请先确保弄请这些插件之间的依赖关系。
编译(同时)引用:使用 bootstrap.js 或压缩版的 bootstrap.min.js。
“不要尝试同时引用这两个文件,因为 bootstrap.js 和 bootstrap.min.js 都包含了所有的插件。”

所有的插件依赖于 jQuery。所以必须在插件文件之前引用 jQuery。请访问 bower.json 查看 Bootstrap 当前支持的 jQuery 版本。

1、data 属性
你可以仅仅通过 data 属性 API 就能使用所有的 Bootstrap 插件,无需写一行 JavaScript 代码。这是 Bootstrap 中的一等 API,也应该是你的首选方式。
话又说回来,在某些情况下可能需要将此功能关闭。因此,我们还提供了关闭 data 属性 API 的方法,即解除以 data-api 为命名空间并绑定在文档上的事件。就像下面这样:
$(document).off('.data-api')
如需关闭一个特定的插件,只需要在 data-api 命名空间前加上该插件的名称作为命名空间即可,如下所示:
$(document).off('.alert.data-api')

2、编程方式的 API
我们为所有 Bootstrap 插件提供了纯 JavaScript 方式的 API。所有公开的 API 都是支持单独或链式调用方式,并且返回其所操作的元素集合(注:和jQuery的调用形式一致)。例如:

$(".btn.danger").button("toggle").addClass("fat")

所有的方法都可以接受一个可选的选项对象作为参数,或者一个代表特定方法的字符串,或者不带任何参数(这种情况下,将会初始化插件为默认行为),如下所示:

// 初始化为默认行为
$("#myModal").modal()  
 // 初始化为不支持键盘       
$("#myModal").modal({ keyboard: false }) 
// 初始化并立即调用 show
$("#myModal").modal('show')

每个插件在 Constructor 属性上也暴露了其原始的构造函数:$.fn.popover.Constructor。如果您想获取某个特定插件的实例,可以直接通过页面元素获取:
$('[rel=popover]').data('popover').

3、避免命名空间冲突
某些时候 Bootstrap 插件可能需要与其他 UI 框架一起使用。在这种情况下,可能会发生命名空间冲突。如果不幸发生了这种情况,你可以通过调用插件的 .noConflict 方法恢复其原始值。

// 返回 $.fn.button 之前所赋的值
var bootstrapButton = $.fn.button.noConflict()
// 为 $().bootstrapBtn 赋予 Bootstrap 功能             
$.fn.bootstrapBtn = bootstrapButton

4、事件
Bootstrap 为大多数插件的独特行为提供了自定义事件。一般来说,这些事件有两种形式:

动词不定式:这会在事件开始时被触发。例如 ex: show。动词不定式事件提供了 preventDefault 功能。这使得在事件开始前可以停止操作的执行。

$('#myModal').on('show.bs.modal', function (e) {
// 阻止模态框的显示
 if (!data) return e.preventDefault()
})

过去分词形式:这会在动作执行完毕之后被触发。例如 ex: shown。

以上就是Bootstrap插件的简单概述,希望对大家了解Bootstrap插件有所帮助。

Javascript 相关文章推荐
JavaScript 题型问答有答案参考
Feb 17 Javascript
jquery 页面全选框实践代码
Apr 02 Javascript
jQuery选择没有colspan属性的td的代码
Jul 06 Javascript
jQuery处理图片加载失败的常用方法
Jun 08 Javascript
简单理解js的冒泡排序
Dec 19 Javascript
bootstrap table单元格新增行并编辑
May 19 Javascript
js获取元素的偏移量offset简单方法(必看)
Jul 05 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
Dec 08 Javascript
JS实现带导航城市列表以及输入搜索功能
Jan 04 Javascript
javascript操作元素的常见方法小结
Nov 13 Javascript
Element图表初始大小及窗口自适应实现
Jul 10 Javascript
JS前端使用canvas实现扩展物体类和事件派发
Aug 05 Javascript
Bootstrap每天必学之折叠(Collapse)插件
Apr 25 #Javascript
第六章之辅组类与响应式工具
Apr 25 #Javascript
第七章之菜单按钮图标组件
Apr 25 #Javascript
第九章之路径分页标签与徽章组件
Apr 25 #Javascript
Bootstrap每天必学之轮播(Carousel)插件
Apr 25 #Javascript
第十章之巨幕页头缩略图与警告框组件
Apr 25 #Javascript
Bootstrap每天必学之附加导航(Affix)插件
Apr 25 #Javascript
You might like
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
header导出Excel应用示例
2014/01/24 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
ExtJS 2.0 实用简明教程之布局概述
2009/04/29 Javascript
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
使用vue构建移动应用实战代码
2017/08/02 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
总结Python编程中函数的使用要点
2016/03/20 Python
Python实现二维有序数组查找的方法
2016/04/27 Python
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
Html5无刷新修改browser Url的方法
2014/01/15 HTML / CSS
世界上最大的艺术和工艺用品商店:MisterArt.com
2018/07/13 全球购物
成人继续教育实施方案
2014/03/01 职场文书
心理健康活动总结
2014/04/30 职场文书
建筑施工安全责任书
2014/07/24 职场文书
支部书记四风对照材料
2014/08/28 职场文书
党的群众路线调研报告
2014/11/03 职场文书
革命电影观后感
2015/06/18 职场文书
Java实现多文件上传功能
2021/06/30 Java/Android
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js