jQuery外掛開發流程簡單介紹
外掛開發主要有如下三種方式:
(1).通過$.extend()來擴充套件jQuery。
(2).通過$.fn 向jQuery新增新的方法。
(3).通過$.widget()應用jQuery UI的部件工廠方式建立。
第一種$.extend()相對簡單,一般很少能夠獨立開發複雜外掛,第三種是一種高階的開發模式,本文也不做介紹。
第二種則是一般外掛開發用到的方式,本文著重講講第二種。
外掛開發:
第二種外掛開發方式一般是如下定義:
[JavaScript] 純文字檢視 複製程式碼$.fn.pluginName = function() { //your code here }
外掛開發,我們一般運用物件導向的思維方式
例如定義一個物件
[JavaScript] 純文字檢視 複製程式碼var Haorooms= function(el, opt) { this.$element = el, this.defaults = { 'color': 'red', 'fontSize': '12px', 'textDecoration':'none' }, this.options = $.extend({}, this.defaults, opt) } //定義haorooms的方法 haorooms.prototype = { changecss: function() { return this.$element.css({ 'color': this.options.color, 'fontSize': this.options.fontSize, 'textDecoration': this.options.textDecoration }); } }
$.extend({}, this.defaults, opt)有{}主要是為了建立一個新物件,保留物件的預設值。
[JavaScript] 純文字檢視 複製程式碼$.fn.myPlugin = function(options) { //建立haorooms的實體 var haorooms= new Haorooms(this, options); //呼叫其方法 return Haorooms.changecss(); }
呼叫這個外掛直接如下就可以
[JavaScript] 純文字檢視 複製程式碼$(function() { $('a').myPlugin({ 'color': '#2C9929', 'fontSize': '20px' }); })
上述開發方法的問題:
上面的開發方法存在一個嚴重的問題,就是定義了一個全域性的Haorooms,這樣對於外掛的相容等等各個方面都不好。萬一別的地方用到了Haorooms,那麼程式碼就出現問題了,現在我們把上面的程式碼包裝起來,用一個自呼叫匿名函式(有時又叫塊級作用域或者私有作用域)包裹,就不會出現這個問題了,包括js外掛的開發,也是一樣的,我們用一個自呼叫匿名函式把自己寫的程式碼包裹起來,包裹方法如下:
[JavaScript] 純文字檢視 複製程式碼(function(){ })()
用上面的這個包裹起來,就可以了。
但是還有一個問題,程式碼前面經常看到有“;”,那是為了避免程式碼合併等不必要的錯誤。
例如,我們隨便定義一個函式:
[JavaScript] 純文字檢視 複製程式碼var haoroomsblog=function(){ } (function(){ })()
由於haoroomsblog這個函式後面沒有加分號,導致程式碼出錯,為了避免這類情況的發生,通常這麼寫:
[JavaScript] 純文字檢視 複製程式碼;(function(){ })()
把你的外掛程式碼包裹在上面裡面,就是一個簡單的外掛了。
另外還有一個問題:
把你的外掛包裹在:
[JavaScript] 純文字檢視 複製程式碼;(function(){ })()
基本上可以說是完美了。但是為了讓你開發的外掛應用更加廣泛,相容性更加好,還要考慮到用外掛的人的一些特殊的做法,例如,有些朋友為了避免jquery和zeptojs衝突,將jquery的字首"$",修改為"jQuery",還有些朋友將預設的document等方法修改。為了讓你的外掛在這些東西修了了的情況下照常執行,那麼我們的做法是,把程式碼包裹在如下里面:
[JavaScript] 純文字檢視 複製程式碼;(function($,window,document,undefined){ //我們的程式碼。。 })(jQuery,window,document);
就可以避免上面的一些情況。
相關文章
- 自定義jquery外掛簡單介紹jQuery
- jQuery自定義外掛簡單介紹jQuery
- jQuery外掛製作簡單介紹jQuery
- jquery.cookie外掛使用簡單介紹jQueryCookie
- jQuery外掛Tmpl使用方法簡單介紹jQuery
- jquery.lazyload.js外掛用法簡單介紹jQueryJS
- zTree外掛常鍵用法簡單介紹
- alertify提示外掛使用方式簡單介紹
- YprogressBar進度條外掛使用簡單介紹
- jquery實現的元素居中外掛簡單介紹jQuery
- VS Code外掛開發介紹(二)
- cookie外掛-jquery.cookie.js介紹CookiejQueryJS
- jQuery Validate簡單介紹jQuery
- jQuery filter() 用法簡單介紹jQueryFilter
- ZOOM – 簡單的 jQuery 相簿外掛OOMjQuery
- HTTPS流程簡單介紹HTTP
- jQuery外掛開發模式jQuery模式
- jquery外掛開發方法jQuery
- chrome外掛開發簡介(一)——開發入門Chrome
- cluetip關鍵詞連結外掛用法簡單介紹
- wordpress外掛開發03-簡單的all in one seo 外掛開發
- jQuery阻止事件冒泡簡單介紹jQuery事件
- jQuery自定義事件簡單介紹jQuery事件
- jquery動畫佇列簡單介紹jQuery動畫佇列
- jquery外掛 - EasyDrag 簡單拖動欄jQuery
- jquery外掛開發例項jQuery
- jQuery外掛開發全解析jQuery
- Flutter 原生外掛開發流程Flutter
- jQuery滑鼠雙擊事件簡單介紹jQuery事件
- jQuery建構函式簡單介紹jQuery函式
- jQuery 圖片檢視外掛 Magnify 開發簡介(仿 Windows 照片檢視器)jQueryWindows
- chatgpt~外掛介紹ChatGPT
- jQuery Validate表單驗證基本流程介紹jQuery
- jcrop+Fileapi圖片上傳裁剪外掛使用簡單介紹API
- jquery操作select下拉選單簡單介紹jQuery
- jQuery外掛開發模式詳解jQuery模式
- jQuery事件名稱空間簡單介紹jQuery事件
- 提高jquery效能的常用技巧簡單介紹jQuery