国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

jquery插件開發模式實例詳解

2024-05-06 15:36:48
字體:
來源:轉載
供稿:網友

本文實例講述了jquery插件開發模式。分享給大家供大家參考,具體如下:

jquery插件一般有三種開發方式:

通過$.extend()來擴展jQuery 通過$.fn 向jQuery添加新的方法 通過$.widget()應用jQuery UI的部件工廠方式創建

第一種$.extend()相對簡單,一般很少能夠獨立開發復雜插件,第三種是一種高級的開發模式,本文也不做介紹。第二種則是一般插件開發用到的方式,本文著重講講第二種。

插件開發

第二種插件開發方式一般是如下定義

$.fn.pluginName = function() {  //your code here}

插件開發,我們一般運用面向對象的思維方式

例如定義一個對象

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)有{}主要是為了創建一個新對象,保留對象的默認值。

$.fn.myPlugin = function(options) {  //創建haorooms的實體  var haorooms= new Haorooms(this, options);  //調用其方法  return Haorooms.changecss();}

調用這個插件直接如下就可以

$(function() {  $('a').myPlugin({    'color': '#2C9929',    'fontSize': '20px'  });})

上述開發方法的問題

上面的開發方法存在一個嚴重的問題,就是定義了一個全局的Haorooms,這樣對于插件的兼容等等各個方面都不好。萬一別的地方用到了Haorooms,那么你的代碼就悲催了!現在我們把上面的代碼包裝起來,用一個自調用匿名函數包裹,就不會出現這個問題了!包括js插件的開發,也是一樣的,我們用一個自調用匿名函數把自己寫的代碼包裹起來,就可以了!包裹方法如下:

(function(){})()

用上面的這個包裹起來,就可以了。

但是還有一個問題,當我們研究大牛的代碼的時候,前面經常看到有“;”,那是為了避免代碼合并等不必要的錯誤。

例如,我們隨便定義一個函數:

var haoroomsblog=function(){}(function(){  })()

由于haoroomsblog這個函數后面沒有加分號,導致代碼出錯,為了避免這類情況的發生,通常這么寫!

;(function(){  })()

把你的插件代碼包裹在上面里面,就是一個簡單的插件了。(注js插件和jquery插件都是如此)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 改则县| 青冈县| 肃南| 桃源县| 英德市| 东方市| 鹿邑县| 满洲里市| 饶阳县| 永新县| 乃东县| 游戏| 新竹市| 土默特右旗| 葫芦岛市| 抚州市| 旌德县| 德令哈市| 德钦县| 长春市| 平江县| 江达县| 乌什县| 句容市| 清流县| 菏泽市| 泌阳县| 获嘉县| 海原县| 英吉沙县| 怀来县| 平乡县| 思南县| 沈阳市| 库尔勒市| 桂平市| 屏山县| 中超| 五寨县| 虹口区| 腾冲县|