jquery插件制作心得

12年前
今天刚刚把jquery的插件制作学习了一下,总结一下别人写的和自己的心得,方便其他初学者的学习,考虑到要学习jquery插件制作的人一定知道jquery插件的好处和通用性,这里就不多说  一、先从一个简单的实例,不需要带参数的一个方法开始  //创建一个匿名函数     (function($){         //给jQuery附加一个新的方法(详细见备注1)     $.fn.extend({              //插件的名字          MyFirstName: function() {                //迭代当前匹配元素集合              return this.each(function() {     var obj = $(this);                  //自己的代码                });             }         });     )(jQuery);  备注1:理解$.fn.extend和$.extend的区别,大概的说前者是将MyFirstName这个方法合并到jquery的实例对象中,例如$(“#txtmy”).add(3,4)这样调用方法,后者是将MyFirstName这个方法合并到jquery的全局对象中,例如$.add(3,4); 这样调用方法  详细区别见(http://ioryioryzhan.iteye.com/blog/232971)    二、有参数的  //创建一个匿名函数     (function($){         //给jQuery附加一个新的方法(详细见备注1)     $.fn.extend({              //插件的名字          MyFirstName: function() {     //定义默认参数  Var parms={  Parms1:1,  Parms2:2  }  //合并用户传的参数和默认参数,返回给options(详细见备注2)  var options = $.extend(defaults, options);               //迭代当前匹配元素集合              return this.each(function() {   //把合并后的参数赋值给o  var o=  options;  //迭代当前匹配元素  var obj = $(this);                  //自己的代码                });             }         });     )(jQuery);  备注2:var options = $.extend(defaults, options); 意思是把defaults和options合并,如果后者有和前者名称一样的元素,后者覆盖前者,然后合并给defaults,然后defaults赋值给options,如果是var options = $.extend({},defaults, options);那么是把前者和后者合并给{}这个参数,然后赋值给options,defaluts的结构和值都没有变化  详细区别见(http://www.cnblogs.com/holygis/archive/2011/11/02/2232659.html)

转自:http://www.cnblogs.com/yinhaichao/archive/2012/01/31/2334034.html