JavaScript的jQuery庫(kù)插件的簡(jiǎn)要開(kāi)發(fā)指南
jQuery 插件通常分兩類(lèi)。
- 基于選擇器的插件(支持鏈?zhǔn)讲僮鳎?/li>
- 不基于選擇器的插件(不支持鏈?zhǔn)讲僮鳎?/li>
前段時(shí)間簡(jiǎn)單學(xué)習(xí)了 jQuery 插件開(kāi)發(fā),開(kāi)發(fā)了兩個(gè)簡(jiǎn)單的插件,在此對(duì)兩種插件的開(kāi)發(fā)模式做簡(jiǎn)要總結(jié)。
基于選擇器的插件
通常開(kāi)發(fā)模式如下:
(function($, window, undefined) { $.fn.PluginName = function(opts) { var defaults = { // 插件自定義選項(xiàng)的默認(rèn)值 }; // 以用戶的自定義選項(xiàng)覆蓋默認(rèn)選項(xiàng) var options = $.extend(defaults, opts || {}); return this.each(function() { // 讓插件支持鏈?zhǔn)讲僮? // 在這里編寫(xiě)插件功能代碼 }); }; })(jQuery, window);
首先,創(chuàng)建一個(gè)匿名的自執(zhí)行函數(shù),形參為 $ 、 window 和 undefined,實(shí)參為 jQuery 和 window。
嗯?為什么沒(méi)有為 undefined 對(duì)應(yīng)地傳入一個(gè)實(shí)參呢?這是一個(gè)小技巧,考慮到 undefined 這個(gè)變量名可能在其它地方的 JavaScript 代碼賦過(guò)值,失去了它真正的意義,所以這里干脆不傳入這個(gè)參數(shù),以確保它在那個(gè)匿名自執(zhí)行函數(shù)中是真正的 undefined。
jQuery 傳入后對(duì)應(yīng)為 $,這樣可以保證插件內(nèi)調(diào)用的 $ 一定是 jQuery 而非 Prototype 之類(lèi)的庫(kù)。
此類(lèi)插件的調(diào)用方式一般為 $(selector).PluginName(); 這種形式。
此類(lèi)具體示例可參考 https://github.com/libuchao/KTwitter
不基于選擇器的插件
由于此類(lèi)插件不依賴于選擇器,所以也無(wú)鏈?zhǔn)讲僮饕徽f(shuō)。一般開(kāi)發(fā)模式如下:
(function($, window, undefined) { $.PluginName = function(opts) { var defaults = { // 插件自定義選項(xiàng)的默認(rèn)值 }; // 以用戶的自定義選項(xiàng)覆蓋默認(rèn)選項(xiàng) var options = $.extend(defaults, opts || {}); // 在這里編寫(xiě)插件功能代碼 }; })(jQuery, window);
此類(lèi)插件的調(diào)用形式一般為 $(selector).PluginName(); 這種形式。
相關(guān)文章
jquery實(shí)現(xiàn)網(wǎng)站列表切換效果的2種方法
這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)網(wǎng)站列表切換效果的2種方法,供大家參考,感興趣的小伙伴們可以參考一下2016-08-08jQuery控制文本框只能輸入數(shù)字和字母及使用方法
這篇文章主要介紹了jQuery控制文本框只能輸入數(shù)字和字母及使用方法的相關(guān)資料,非常不錯(cuò)而且實(shí)用性也很高,需要的朋友可以參考下2016-05-05修改jquery.lazyload.js實(shí)現(xiàn)頁(yè)面延遲載入
jquery.lazyload.js并未真正的實(shí)現(xiàn)頁(yè)面延遲載入,它的實(shí)現(xiàn)原理是頁(yè)面載入完畢后將html中所有img標(biāo)簽的src屬性都替換為空,把src的初始值存儲(chǔ)到一個(gè)自定義的屬性中,當(dāng)頁(yè)面滾動(dòng)到img標(biāo)簽位置時(shí)再將圖片載入進(jìn)來(lái)。2010-12-12在Web項(xiàng)目中引入Jquery插件報(bào)錯(cuò)的完美解決方案(圖解)
這篇文章主要介紹了在Web項(xiàng)目中引入Jquery插件報(bào)錯(cuò)的完美解決方案的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09Jquery UI震動(dòng)效果實(shí)現(xiàn)原理及步驟
如果你想你的博客頁(yè)面某些部分引起讀者的注意,你可以使這些部分震動(dòng),如廣告等等,今天這篇文章將介紹怎樣使你的頁(yè)面中的元素震動(dòng)起來(lái),感興趣的你可不要錯(cuò)過(guò)了哦,或許對(duì)你學(xué)習(xí)jquery ui 有所幫助2013-02-02幻燈片帶網(wǎng)頁(yè)設(shè)計(jì)中的20個(gè)奇妙應(yīng)用示例小結(jié)
幻燈片效果在網(wǎng)站中的使用非常流行,使用幻燈片效果既能在有限的網(wǎng)頁(yè)空間內(nèi)展示更多的內(nèi)容,又能增強(qiáng)視覺(jué)趣味,網(wǎng)上眾多的幻燈片插件資源也使得幻燈片的實(shí)現(xiàn)變得十分簡(jiǎn)單2012-05-05jQuery 移動(dòng)端拖拽(模塊化開(kāi)發(fā),觸摸事件,webpack)
這篇文章主要介紹了jQuery 移動(dòng)端拖拽(模塊化開(kāi)發(fā),觸摸事件,webpack)的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10使用jquery animate創(chuàng)建平滑滾動(dòng)效果(可以是到頂部、到底部或指定地方)
這篇文章主要介紹了使用jquery animate創(chuàng)建平滑滾動(dòng)效果,效果可以滾動(dòng)到頂部、到底部或頁(yè)面中指定地方,生要的是非常平滑,很舒服,需要的朋友可以參考下2014-05-05