JavaScript 插件可以單個引入(使用 Bootstrap 提供的單個 *.js 文件),或者一次性全部引入(使用 bootstrap.js 或壓縮版的 bootstrap.min.js)。
bootstrap.js 和 bootstrap.min.js 都包含了所有插件,你在使用時,只需選擇一個引入頁面就可以了。
某些插件和 CSS 組件依賴于其它插件。如果你是單個引入每個插件的,請確保在文檔中檢查插件之間的依賴關系。注意,所有插件都依賴 jQuery (也就是說,jQuery必須在所有插件之前引入頁面)。 bower.json 文件中列出了 Bootstrap 所支持的 jQuery 版本。
你可以僅僅通過 data 屬性 API 就能使用所有的 Bootstrap 插件,無需寫一行 JavaScript 代碼。這是 Bootstrap 中的一等 API,也應該是你的首選方式。
話又說回來,在某些情況下可能需要將此功能關閉。因此,我們還提供了關閉 data 屬性 API 的方法,即解除以 data-api 為命名空間并綁定在文檔上的事件。就像下面這樣:
$(document).off('.data-api')
另外,如果是針對某個特定的插件,只需在 data-api 前面添加那個插件的名稱作為命名空間,如下:
$(document).off('.alert.data-api')
我們?yōu)樗?Bootstrap 插件提供了純 JavaScript 方式的 API。所有公開的 API 都是支持單獨或鏈式調用方式,并且返回其所操作的元素集合(注:和 jQuery 的調用形式一致)。
$('.btn.danger').button('toggle').addClass('fat')
所有方法都可以接受一個可選的 option 對象作為參數(shù),或者一個代表特定方法的字符串,或者什么也不提供(在這種情況下,插件將會以默認值初始化):
$('#myModal').modal() // 以默認值初始化
$('#myModal').modal({ keyboard: false }) // initialized with no keyboard
$('#myModal').modal('show') // 初始化后立即調用 show 方法
每個插件還通過 Constructor 屬性暴露了其原始的構造函數(shù):$.fn.popover.Constructor。如果你想獲取某個插件的實例,可以直接通過頁面元素獲?。?code>$('[rel="popover"]').data('popover')。
默認設置
每個插件都可以通過修改其自身的 Constructor.DEFAULTS 對象從而改變插件的默認設置:
$.fn.modal.Constructor.DEFAULTS.keyboard = false // 將模態(tài)框插件的 `keyboard` 默認選參數(shù)置為 false
某些時候可能需要將 Bootstrap 插件與其他 UI 框架共同使用。在這種情況下,命名空間沖突隨時可能發(fā)生。如果不幸發(fā)生了這種情況,你可以通過調用插件的 .noConflict 方法恢復其原始值。
var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton // give $().bootstrapBtn the Bootstrap functionality
Bootstrap 為大部分插件所具有的動作提供了自定義事件。一般來說,這些事件都有不定式和過去式兩種動詞的命名形式,例如,不定式形式的動詞(例如 show)表示其在事件開始時被觸發(fā);而過去式動詞(例如 shown )表示在動作執(zhí)行完畢之后被觸發(fā)。
從 3.0.0 版本開始,所有 Bootstrap 事件的名稱都采用命名空間方式。
所有以不定式形式的動詞命名的事件都提供了 preventDefault 功能。這就賦予你在動作開始執(zhí)行前將其停止的能力。
$('#myModal').on('show.bs.modal', function (e) {
if (!data) return e.preventDefault() // 阻止模態(tài)框的展示
})
Bootstrap 插件未對禁用 JavaScript 的瀏覽器提供補救措施。如果你對這種情況下的用戶體驗很關心的話,請?zhí)砑?<noscript> 標簽向你的用戶進行解釋(并告訴他們如何啟用 JavaScript),或者按照你自己的方式提供補救措施。
Bootstrap 官方不提供對第三方 JavaScript 工具庫的支持,例如 Prototype 或 jQuery UI。除了 .noConflict 和為事件名稱添加命名空間,還可能會有兼容性方面的問題,這就需要你自己來處理了。