详解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 不能释放内存.
Sep 07 Javascript
你真的了解JavaScript吗?
Feb 24 Javascript
JavaScript CSS修改学习第三章 修改样式表
Feb 19 Javascript
javascript中的undefined和not defined区别示例介绍
Feb 26 Javascript
javascript获取checkbox复选框获取选中的选项
Aug 12 Javascript
一个不错的js html页面倒计时可精确到秒
Oct 22 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
Aug 24 Javascript
javascript淘宝主图放大镜功能
Oct 20 Javascript
Angular2学习教程之组件中的DOM操作详解
May 28 Javascript
Require.js的基本用法详解
Jul 03 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
Jul 03 jQuery
React学习之受控组件与数据共享实例分析
Jan 06 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 第二节 数据类型之转换
2012/04/28 PHP
php图片的裁剪与缩放生成符合需求的缩略图
2013/01/11 PHP
joomla组件开发入门教程
2016/05/04 PHP
PHP的PDO预处理语句与存储过程
2019/01/27 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
JavaScript事件列表解说
2006/12/22 Javascript
JavaScript中Array 对象相关的几个方法
2006/12/22 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
JavaScript中的原型链prototype介绍
2014/12/30 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
聊聊Vue.js的template编译的问题
2017/10/09 Javascript
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
python uuid模块使用实例
2015/04/08 Python
Python实现12306火车票抢票系统
2019/07/04 Python
django框架两个使用模板实例
2019/12/11 Python
python实现俄罗斯方块游戏(改进版)
2020/03/13 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
什么是反射?如何实现反射?
2016/07/25 面试题
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
最美家庭活动方案
2014/08/31 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
开学随笔
2015/08/15 职场文书
Python基础知识之变量的详解
2021/04/14 Python
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python