在bootstrap.js源碼里每個插件都有一個Plugin構造函數,但是這個構造函數如果不通過js調用,是不會執行的,官方也建議通過在HTML標簽里通過data-*來調用bootstrap.js的各種插件,那么在什么場景下會調用Plugin構造函數呢,望大牛指點迷津,下面貼上一個警告框alert的Plugin代碼/** * ============================================================================================== * 當用$(".alert").alert()調用警告框時會會執行Plugin構造函數,里面通過緩存數據來優化性能 * 不明白這個緩存的數據在什么場景下會再次調用呢,如果沒有再次調用場景,不是反而浪費性能了嗎,我想了好久。。。 * 是不是為以后的擴展做準備呢 * =============================================================================================== */ function Plugin(option) { return this.each(function () { var $this = $(this) //如果有數據緩存則直接從緩存里進行讀寫操作 優化性能 var data = $this.data('bs.alert') //如果該jquery對象沒有該數據,則把Alert實例數據存儲在$this中 if (!data) $this.data('bs.alert', (data = new Alert(this))) console.log($this.data("bs.alert")); if (typeof option == 'string') data[option].call($this) }) }
在bootstrap.js源碼里每個插件都有一個Plugin構造函數,有什么作用呢
嚕嚕噠
2018-09-14 10:09:20