JavaScript
Bring Bootstrap to life with our optional JavaScript plugins built on jQuery. Learn about each plugin, our data and programmatic API options, and more.
单个还是整体引用
Bootstrap 插件可以单个引用(使用 Bootstrap 各插件的独立 *.js
文件),或者通过 bootstrap.js
文件或压缩后的 bootstrap.min.js
文件一次性引入(不要两个文件全部引入)。
依赖关系
某些插件和 CSS 组件依赖其他插件。如果你引入的是单个插件,务必在文档中查看其是否有额外依赖。另外还要注意,所有插件都依赖 jQuery (也就是说 jQuery 必须在所有插件 之前 引入)。请参考 package.json
文件以了解哪个版本的 jQuery 是被支持的。
下拉菜单(dropdowns)、提示框(popovers)和工具提示框(tooltips)组件还额外依赖 Popper.js。
data 属性
几乎所有 Bootstrap 插件都可以通过带有 data 属性的 HTML 代码开启并配置 (这中使用 JavaScript 功能的方式是我们推荐的)。注意,在一个元素上只能设置一个 data 属性(例如,你无法在同一个按钮上同时触发工具提示框和模态框)。
然而,在某些情况下可能需要禁用此功能。如需禁止 data 属性 API ,可以通过 data-api
参数在 document 命名空间中解绑所有事件。
另外,如果只是针对某个特定插件,只需在调用时在 data-api 命名空间的前面添加上插件名即可,如下所示:
事件
Bootstrap 为大多数插件唯一的独特行为提供了自定义的事件。一般来说,这些事件都有不定式和过去式两种动词的命名形式 - 不定式形式的动词(例如 show)表示其在事件开始时被触发;而过去式动词(例如 shown )表示在动作执行完毕之后被触发。
所有以不定式形式的动词命名的事件都提供了 preventDefault()
功能。这就赋予你在动作开始执行前将其停止的能力。在事件处理函数中返回 false 也能够自动调用 preventDefault()
。
编程式 API
我们坚信你应当能够通过纯 JavaScript API 的方式调用所有 Bootstrap 插件。所有公开的 API 都是单一、可链式调用的方法,并且全部返回被执行元素的集合。
所有方法都可以接受一个可选的对象(object)类型参数,或者某写特定方法也可以接受字符串作为参数,或者没有参数(通过默认参数初始化一个插件):
每个插件都通过 Constructor
属性暴露其原始构造函数:$.fn.popover.Constructor
。如果你希望获得某个插件的实例对象,可以直接从 HTML 元素上获取: $('[rel="popover"]').data('popover')
。
异步函数和过渡效果
所有编程式 API 方法都是 异步(asynchronous) 的,在过渡效果启动之后、结束之前 将控制权返回给主调函数。
如需在过渡效果完成时执行某个动作,你可以监听相应的事件。
正在执行过渡效果的组件将忽略额外的方法调用。
默认设置
你可以通过修改插件的 Constructor.Default
对象来改变其默认设置:
避免命名空间冲突
某些时候可能需要将 Bootstrap 插件与其他 UI 框架共同使用。在这种情况下,命名空间冲突随时可能发生。如果不幸发生了这种情况,你可以通过调用插件的 .noConflict
方法恢复其原始值。
版本号
每个 Bootstrap 的 jQuery 插件的版本号都可以通过插件的构造函数上的 VERSION
属性获取到。例如工具提示框(tooltip)插件:
未对禁用 JavaScript 的浏览器提供补救措施
Bootstrap 插件未对禁用 JavaScript 的浏览器提供补救措施。如果你很关心这种情况下的用户体验问题,请添加 <noscript>
标签向你的用户进行解释(并告诉他们如何开启 JavaScript 支持),或者按照你自己的方式提供补救措施。
第三方库
Bootstrap 官方并不支持任何第三方库 ,例如 Prototype 或 jQuery UI。除了 .noConflict
和命令空间事件(namespaced events)外,也许还有其他兼容性方面的问题需要你自己处理。
Util 文件
Bootstrap 的所有 JavaScript 文件都依赖 util.js
文件,并且此文件已经和其他 JavaScript 文件一起打包在一起了。如果你使用的是预编译(或压缩)的 bootstrap.js
文件,无需额外再将其引入了,因为已经都包含了。
util.js
文件包含了工具函数和针对 transitionEnd
事件的辅助代码,另外还包含了一个 CSS 过渡效果模拟器。它被其他插件用来检测 CSS 过渡效果的支持情况并捕获每一个挂起的过渡效果动画。