详解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 兼容FF的onmouseenter和onmouseleave的代码
Jul 19 Javascript
jQuery EasyUI NumberBox(数字框)的用法
Jul 08 Javascript
js解决弹窗问题实现班级跳转DIV示例
Jan 06 Javascript
javascript显示中文日期的方法
Jun 18 Javascript
JavaScript设计模式开发中组合模式的使用教程
May 18 Javascript
微信小程序-消息提示框实例
Nov 24 Javascript
Vue.js组件tab实现选项卡切换
Mar 23 Javascript
浅谈angularjs依赖服务注入写法的注意点
Apr 24 Javascript
js每隔两秒输出数组中的一项(实例)
May 28 Javascript
浅谈Node Inspector 代理实现
Oct 19 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
Sep 21 Javascript
JS回调函数 callback的理解与使用案例分析
Sep 09 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
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
php共享内存段示例分享
2014/01/20 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
2016/03/21 PHP
yii2.0实现创建简单widgets示例
2016/07/18 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
php微信开发之关注事件
2018/06/14 PHP
几个高效,简洁的字符处理函数
2007/04/12 Javascript
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
一个js控制的导航菜单实例代码
2013/12/03 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
JSON生成Form表单的方法示例
2018/11/21 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
Python中的filter()函数的用法
2015/04/27 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
浅析matlab中imadjust函数
2020/02/27 Python
python 元组和列表的区别
2020/12/30 Python
Python Selenium异常处理的实例分析
2021/02/28 Python
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
《童年的发现》教学反思
2014/02/14 职场文书
统计员岗位职责范本
2015/04/14 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书
python中pandas对多列进行分组统计的实现
2021/06/18 Python
如何解决php-fpm启动不了问题
2021/11/17 PHP