两种方式:
方法一:
$.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){
点解方法
}
});