详解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 相关文章推荐
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
Jan 11 Javascript
jQuery 性能优化指南(2)
May 21 Javascript
jQuery实现 注册时选择阅读条款 左右移动
Apr 11 Javascript
不使用jquery实现js打字效果示例分享
Jan 19 Javascript
jquery实现pager控件示例
Apr 09 Javascript
微信小程序 网络API Websocket详解
Nov 09 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
Jan 24 Javascript
老生常谈js中的MVC
Jul 25 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
Oct 26 Javascript
JS文件中加载jquery.js的实例代码
May 05 jQuery
Element UI 自定义正则表达式验证方法
Sep 04 Javascript
vue-router 2.0 跳转之router.push()用法说明
Aug 12 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
phpize的深入理解
2013/06/03 PHP
CI配置多数据库访问的方法
2016/03/28 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
在layui中select更改后生效的方法
2019/09/05 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
Vue的Options用法说明
2020/08/14 Javascript
vue自定义树状结构图的实现方法
2020/10/18 Javascript
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
python通过shutil实现快速文件复制的方法
2015/03/14 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
2016/01/20 Python
连接pandas以及数组转pandas的方法
2019/06/28 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
Django静态文件加载失败解决方案
2020/08/26 Python
谈谈python垃圾回收机制
2020/09/27 Python
英国领先的游戏零售商:GAME
2019/09/24 全球购物
秋季开学典礼主持词
2014/03/19 职场文书
歌唱比赛策划方案
2014/06/06 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
ORACLE数据库应用开发的三十个注意事项
2021/06/07 Oracle