jq的插件的寫法

兩種方式:

方法一:

$.extend({add:function(a,b){return a+b}});

$.extend(src)//將src合併到全局對象中去
使用方式 var i=$.add(3,2);


方法二:

$.fn.extend({name:function(){}});

 jQuery.fn = jQuery.prototype//也就是jQuery對象的原型

$.fn.extend(src)//方法將src合併到jquery的實例對象中去

使用方式:$('input[type=checkbox]').check();基於對象的拓展了


 那jQuery.fn.extend()方法就是擴展jQuery對象的原型方法就相當於爲對象添加”成員方法“,類的”成員方法“要類的對象才能調用,所以使用jQuery.fn.extend(object)擴展的方法, jQuery類的實例可以使用這個“成員函數”。jQuery.fn.extend(object)和jQuery.extend(object)方法一定要區分開來。



(function($){
//內部插件代碼的實現
//爲插件內部的代碼不污染全局變量
//使用$.extend(defaults,options)將默認值和傳入參數進行合併
var defaults={//爲擴張方法設置默認值
name:'我的插件',
version:"1.0"
}
$.fn.createPage=function(options){//插件的名稱

}
})(jQuery)

我們最好將jQuery傳遞給一個自我執行的封閉程序,jQuery在此程序中映射爲$符號,這樣可以避免$號被其他庫覆寫

這是jQuery官方的插件開發規範,這樣寫是作用是:
1. 避免全局依賴。
2. 避免第三方破壞。
3. 兼容jQuery操作符’$'和’jQuery’

在插件的this代表這個插件要執行的jquery對象
在插件中沒必要寫$(this)  因爲在插件中的$(this)=$($('element'))



什麼是自執行的匿名函數?     
它是指形如這樣的函數: (function {// code})();


例子:

(function($){
$.fn.createPage=function(options){//插件的名稱
var args = $.extend({ //這裏的參數是可改項
 pageCount : 10, 
current : 1, 
 backFn : function(){} 
  },options); 
  ms.init(this,args); 

}

var ms={

init:function(obj,args){

方法代碼內容

}

}

})(jQuery)

使用方式:

$(".tst").createPage({  //基於對象的方法
  pageCount:10, 
  current:1, 
  backFn:function(p){ 
   點解方法
  } 
 }); 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章