详解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 相关文章推荐
Js组件的一些写法
Sep 10 Javascript
JS图片预加载 JS实现图片预加载应用
Dec 03 Javascript
用jquery写的菜单从左往右滑动出现
Apr 11 Javascript
JavaScript数据结构与算法之栈详解
Mar 12 Javascript
浅谈JS如何实现真正的对象常量
Jun 25 Javascript
vue 页面加载进度条组件实例
Feb 05 Javascript
详解Chart.js轻量级图表库的使用经验
May 22 Javascript
微信小程序实现自定义modal弹窗封装的方法
Jun 15 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
Sep 10 Javascript
如何用JavaScript实现功能齐全的单链表详解
Feb 11 Javascript
微信小程序封装分享与分销功能过程解析
Aug 13 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 Vue.js
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
isset和empty的区别
2007/01/15 PHP
PHP 数组教程 定义数组
2009/10/23 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
jQuery检查元素存在性(推荐)
2016/09/17 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
2019/09/17 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
python实现list由于numpy array的转换
2018/04/04 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
Python Web版语音合成实例详解
2019/07/16 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
护理专业自荐信
2013/12/03 职场文书
员工拓展培训方案
2014/02/15 职场文书
2014年后勤工作总结
2014/11/18 职场文书
礼貌问候语大全
2015/11/10 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
JS Canvas接口和动画效果大全
2021/04/29 Javascript