兩種方式:
方法一:
$.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){
點解方法
}
});