1 //类级别插件开发,主要是在jQuery中定义全局方法: 2 3 //第一种写法 4 jQuery.myFunc = function(str){ 5 alert("直接在jquery中定义方法",str) 6 } 7 //调用方式 $.myFunc("hello!"); 8 9 //第二种写法 10 jQuery.extend({ 11 myFunc:function(str){ 12 alert("extend扩展$的方法",str) 13 } 14 }) 15 //调用方式 $.myFunc("hello!"); 16 17 18 //第三种写法: 为了不污染全局,挂载一个对象作为命名空间,自定义的所有方法放在这里,保证jQuery全局安全。 19 jQuery.define={ 20 myFunc:function(str){ 21 alert("命名空间的写法",str) 22 } 23 } 24 25 //调用方式:$.define.myFunc("hello"); 26 27 28 //以上三种是类级别插件开发方式,不常用,从调用方式看出,他们是全局执行的,不需要绑定节点对象。 29 30 31 //对象级别插件开发:有规范模板 32 33 ;(function($){ 34 $.fn.plugin = function(options){ 35 var defaults = { 36 //各种默认参数 37 } 38 var options = $.extend(defaults,options); //传入的参数覆盖默认参数 39 this.each(function(){ 40 var _this = $(this); //缓存一下插件传进来的节点对象。 41 //执行内容 42 43 44 }) 45 return $(this); //把节点对象返回去,为了支持链式调用。 46 } 47 })(jQuery); 48 49 //调用方式 50 $("selector").plugin({ 51 //自定义参数,json格式 52 })