jquery插件制作心得
今天剛剛把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)</pre>
轉自:http://www.cnblogs.com/yinhaichao/archive/2012/01/31/2334034.html