個人比較喜歡封裝,現在學習JQuery,總想封裝出自己喜歡的插件,所以將JQuery插件的開發稍加總結。
本文並不全面,主要針對自定義插件的分類和語法進行總結,希望以后可以作為工具查看。
注:
jQuery插件的完整開發文檔可參考
http://www.cnblogs.com/tonywang711/archive/2012/03/29/2419985.html
類級別的插件:
1、添加一個函數
1 jQuery.foo = function() { 2 alert('類級別一個函數'); 3 };
調用格式如下:
1 jQuery.foo();或者$.foo();
2、添加多個函數
1 jQuery.foo = function() { 2 alert('類級別多個函數第一個'); 3 }; 4 jQuery.bar = function(param) { 5 alert('類級別多個函數第二個'); 6 };
調用格式如下:
jQuery.foo();jQuery.bar();或者$.foo();$.bar('bar');
3、使用extend
1 jQuery.extend({ 2 foo: function() { 3 alert('類級別使用extend'); 4 }, 5 bar: function(param) { 6 alert('類級別使用extend'); 7 } 8 });
4、使用命名空間
1 jQuery.myPlugin = { 2 foo:function() { 3 alert('類級別使用命名空間'); 4 }, 5 bar:function(param) { 6 alert('類級別使用命名空間'+param); 7 } 8 };
調用格式如下:
1 $.myPlugin.foo(); 2 $.myPlugin.bar('baz');
對象級別的插件:
1、添加一個函數
1 $.fn.foo = function() { 2 alert('對象級別一個函數'); 3 };
2、添加多個函數
$.fn.foo = function() { 2 alert('對象級別多個函數'); 3 }; $.fn.bar = function() { 2 alert('對象級別多個函數'); 3 };
3、使用extend
1 $.fn.extend({ 2 foo:function(){ 3 alert('對象級別使用extend'); 4 } 5 bar:function(){ 6 alert('對象級別使用extend'); 7 } 8 })
4、使用命名空間
1 $.fn.foo = { 2 fun1:function(){ 3 alert('對象級別使用命名空間'); 4 } 5 fun2:function(){ 6 alert('對象級別使用命名空間'); 7 } 8 };
類級別和對象級別的區別:
區別其實就是fn。
官方說法:
1 jQuery.fn = jQuery.prototype = { 2 init: function( selector, context ) {//.... 3 //...... 4 };
jQuery.fn = jQuery.prototype
我的理解:
類級別方法什么的是針對$,也就是jQuery對象的,而對象級別的則可以針對$('div')等選擇符產生的對象。
原文鏈接:http://www.cnblogs.com/FlyFive/archive/2013/06/19/2961470.html