資源描述:
《jQuery插件開發(fā)全解析.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、個(gè)人資料整理僅限學(xué)習(xí)使用jQuery插件開發(fā)全解讀jQuery插件的開發(fā)包括兩種:一種是類級別的插件開發(fā),即給jQuery添加新的全局函數(shù),相當(dāng)于給jQuery類本身添加方法。jQuery的全局函數(shù)就是屬于jQuery命名空間的函數(shù),另一種是對象級別的插件開發(fā),即給jQuery對象添加方法。下面就兩種函數(shù)的開發(fā)做詳細(xì)的說明。b5E2RGbCAP1、類級別的插件開發(fā)類級別的插件開發(fā)最直接的理解就是給jQuery類添加類方法,可以理解為添加靜態(tài)方法。典型的例子就是$.AJAX(>這個(gè)函數(shù),將函數(shù)定義于jQuery的
2、命名空間中。關(guān)于類級別的插件開發(fā)可以采用如下幾種形式進(jìn)行擴(kuò)展:p1EanqFDPw1.1添加一個(gè)新的全局函數(shù)添加一個(gè)全局函數(shù),我們只需如下定義:Java代碼1jQuery.foo=function(>{2alert('Thisisatest.Thisisonlyatest.'>。3}。1.2增加多個(gè)全局函數(shù)添加多個(gè)全局函數(shù),可采用如下定義:Java代碼4jQuery.foo=function(>{5alert('Thisisatest.Thisisonlyatest.'>。6}。7jQuery.bar=func
3、tion(param>{8alert('Thisfunctiontakesaparameter,whichis"'+param+'".'>。DXDiTa9E3d9}。10調(diào)用時(shí)和一個(gè)函數(shù)的一樣的:jQuery.foo(>。jQuery.bar(>?;蛘?.foo(>。$.bar('bar'>。RTCrpUDGiT1.3使用jQuery.extend(object>。Java代碼11jQuery.extend({12foo:function(>{13alert('Thisisatest.Thisisonlyate
4、st.'>。14},15bar:function(param>{16alert('Thisfunctiontakesaparameter,whichis"'+param+'".'>。5PCzVD7HxA17}18}>。1.4使用命名空間雖然在jQuery命名空間中,我們禁止使用了大量的javaScript函數(shù)名和變量名。但是仍然不可避免某些函數(shù)或變量名將于其他jQuery插件沖突,因此我們習(xí)慣將一些方法封裝到另一個(gè)自定義的命名空間。jLBHrnAILgJava代碼19jQuery.myPlugin={20foo
5、:function(>{21alert('Thisisatest.Thisisonlyatest.'>。22},23bar:function(param>{24alert('Thisfunctiontakesaparameter,whichis"'+param+'".'>。xHAQX74J0X7/7個(gè)人資料整理僅限學(xué)習(xí)使用1}2}。3采用命名空間的函數(shù)仍然是全局函數(shù),調(diào)用時(shí)采用的方法:4$.myPlugin.foo(>。5$.myPlugin.bar('baz'>。通過這個(gè)技巧<使用獨(dú)立的插件名),我們可以避免
6、命名空間內(nèi)函數(shù)的沖突。2、對象級別的插件開發(fā)對象級別的插件開發(fā)需要如下的兩種形式:、形式1:Java代碼6(function($>{7$.fn.extend({8pluginName:function(opt,callback>{9//Ourpluginimplementationcodegoeshere.10}11}>12}>(jQuery>。形式2:Java代碼13(function($>{14$.fn.pluginName=function(>{15//Ourpluginimplementationcod
7、egoeshere.16}。17}>(jQuery>。上面定義了一個(gè)jQuery函數(shù),形參是$,函數(shù)定義完成之后,把jQuery這個(gè)實(shí)參傳遞進(jìn)去.立即調(diào)用執(zhí)行。這樣的好處是,我們在寫jQuery插件時(shí),也可以使用$這個(gè)別名,而不會與prototype引起沖突.LDAYtRyKfE2.1在JQuery名稱空間下申明一個(gè)名字這是一個(gè)單一插件的腳本。如果你的腳本中包含多個(gè)插件,或者互逆的插件<例如:$.fn.doSomething(>和$.fn.undoSomething(>),那么你需要聲明多個(gè)函數(shù)名字。但是,通常
8、當(dāng)我們編寫一個(gè)插件時(shí),力求僅使用一個(gè)名字來包含它的所有內(nèi)容。我們的示例插件命名為“highlight“Zzz6ZB2LtkJava代碼18$.fn.hilight=function(>{19//Ourpluginimplementationcodegoeshere.20}。21我們的插件通過這樣被調(diào)用:22$('#myDiv'>.hilight(>。但是如果我們需要分解我們的實(shí)現(xiàn)代碼為