Bootstrap 插件简介

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。

data属性

  • 你可以仅仅通过data属性API就能使用所有的Bootstrap插件,无需写一行JavaScript代码。这是Bootstrap中的一等API,也应该是你首选方式。
  • 话又说回来,在某些情况下可能需要将此功能关闭。因此,还提供了关闭data属性API的方法,即解除以data-api为命名空间并绑定再文档上的事件。
$(document).off('.data-api')
  • 如需关闭一个特定的插件,只需要在data-api命名空间前加上该插件的名称作为命名空间即可。
$(document).off('.alert.data-api')

编程方式的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').

避免命名空间冲突

某些时候Bootstrap插件可能需要与其他UI框架一起使用。在这种情况下,可能会发生命名空间冲突。如果不幸发生了这种情况,你可以通过调用插件的.noConflict方法恢复期原始值。

// 返回$.fn.button之前所赋的值
var bootstrapButton = $.fn.button.noConflict()

// 为$().bootstrapBtn赋予Bootstrap功能
$.fn.bootstrapBtn = bootstrapButton

事件

Bootstrap为大多数插件的独特行为提供了自定义事件。一般来说,这些事件有两种形式:

  • 动词不定式:这会在事件开始被触发。例如ex:show。动词不定式事件提供了preventDefault功能。这使得在事件开始前可以停止操作的执行。
$('#myModal').on('show.bs.modal', function(e){
    // 阻止模态框的显示
    if(!data) return e.preventDefault()
})
  • 过去分词形式:这会在动作执行完毕之后被触发。例如ex:shown。
打赏