详解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 相关文章推荐
List Installed Hot Fixes
Jun 12 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
Oct 09 Javascript
十个迅速提升JQuery性能让你的JQuery跑得更快
Dec 10 Javascript
jquery树形菜单效果的简单实例
Jun 06 Javascript
window.open不被拦截的简单实现代码(推荐)
Aug 04 Javascript
jQuery validate插件功能与用法详解
Dec 15 Javascript
loading动画特效小结
Jan 22 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
Nov 19 Javascript
JS实现的全选、全不选及反选功能【案例】
Feb 19 Javascript
ES6基础之展开语法(Spread syntax)
Feb 21 Javascript
Vue使用watch监听一个对象中的属性的实现方法
May 10 Javascript
js脚本中执行java后台代码方法解析
Oct 11 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数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
PHP限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
php常用图片处理类
2016/03/16 PHP
JavaScript开发时的五个注意事项
2007/12/08 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
jQuery获取同级元素的简单代码
2016/07/09 Javascript
总结Node.js中的一些错误类型
2016/08/15 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
JavaScript模板引擎原理与用法详解
2018/12/24 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
python使用心得之获得github代码库列表
2014/06/25 Python
简单的Python的curses库使用教程
2015/04/11 Python
Python实例一个类背后发生了什么
2016/02/09 Python
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
2019/06/04 Python
python调用支付宝支付接口流程
2019/08/15 Python
python3实现高效的端口扫描
2019/08/31 Python
python绘制规则网络图形实例
2019/12/09 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
深入浅析python变量加逗号,的含义
2020/02/22 Python
Python sql注入 过滤字符串的非法字符实例
2020/04/03 Python
html5 web本地存储将取代我们的cookie
2012/12/26 HTML / CSS
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
初中生学习的自我评价
2013/11/14 职场文书
质量负责人岗位职责
2015/02/15 职场文书
工作服管理制度范本
2015/08/06 职场文书