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){ 
   点解方法
  } 
 }); 



猜你喜欢

转载自blog.csdn.net/qq_23114525/article/details/51692411