jQuery自定義插件詳解及實(shí)例代碼
jQuery自定義插件
jQuery是一個(gè)功能強(qiáng)大的庫(kù),提供了開(kāi)發(fā)JavaScript項(xiàng)目所需的所有核心函數(shù)。然而,有時(shí)候我們還是需要使用自定義代碼來(lái)擴(kuò)展這些核心函數(shù)來(lái)提高開(kāi)發(fā)效率。
jQuery庫(kù)是為了加快JavaScript的開(kāi)發(fā)速度而設(shè)計(jì)的,通過(guò)簡(jiǎn)化編寫(xiě)JavaScript的方式,減少代碼量。
jQuery編寫(xiě)插件有兩種方式
1.添加jQuery對(duì)象級(jí)別的插件,原理是給jQuery類添加方法。
寫(xiě)法如下:
(function($){ $.fn.extend({ 函數(shù)名:function(自定義參數(shù)){ //自定義插件代碼部分 } }); })(jQuery); //第二種寫(xiě)法 (function($){ $.fn.函數(shù)名=function(自定義參數(shù)){ //自定義插件代碼 } })(jQuery); //調(diào)用方法 ("#id").函數(shù)名(參數(shù));
2.添加jQuery類級(jí)別的方法,也就是添加靜態(tài)方法
寫(xiě)法如下:
(function($){ $.extend({ 函數(shù)名:function(自定義參數(shù)){ //自定義插件代碼 } }); })(jQuery); //第二種寫(xiě)法 (function($){ $.函數(shù)名=function(自定義參數(shù)){ //自定義插件代碼 } })(jQuery); //調(diào)用方式 $.函數(shù)名(參數(shù));
jQuery插件的種類
1.對(duì)象級(jí)別插件開(kāi)發(fā),即給jQuery對(duì)象添加方法,封裝對(duì)象方法的插件,例如:append()、val()。
2.類級(jí)別插件開(kāi)發(fā),即給jQuery添加全局函數(shù),相當(dāng)于給類本身添加方法,例如:$.ajax();
jQuery的插件機(jī)制
jQuery為開(kāi)發(fā)插件提供了兩種方法。
1. jQuery.fn.extend(object),給jQuery對(duì)象添加方法。
2. jQuery.extend(object),給jQuery類添加方法。
這兩個(gè)方法接收的參數(shù)都是一個(gè)對(duì)象,類型為Object,Object里面的”名/值”分別對(duì)應(yīng)”函數(shù)名/函數(shù)主體”。
fn是什么
查看jQuery源碼:
<span style="font-size:12px;">jQuery.fn = jQuery.prototype = { init: function( selector, context ) {//.... //...... }; </span>
從源碼中查看,可以得出:
jQuery.fn=jQuery.prototype //fn指向jQuery對(duì)象的原型,即為jQuery類添加成員函數(shù)。
這里我寫(xiě)一個(gè)簡(jiǎn)單的例子來(lái)實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的插件,僅僅是用來(lái)說(shuō)明一下如何使用jQuery開(kāi)發(fā)插件。
<!doctype html> <html> <head> <meta charset="utf-8"> <title>自定義jQuery插件</title> <script src="plugs/jquery-2.2.3.min.js"></script> <script> //這是一個(gè)自定義的jQuery插件 (function(){ $.fn.extend({ myFirst:function(){ var s="This is my first jQuery"; $(this).append(s); } }); })(jQuery); </script> </head> <body> <div id="i1"></div> <script> $("#i1").myFirst(); </script> </body> </html>
執(zhí)行以后返回的頁(yè)面為:
以上僅僅介紹如何使用jQuery開(kāi)發(fā)自定義插件,會(huì)使用以后就可以開(kāi)發(fā)更復(fù)雜的插件了。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
jquery動(dòng)態(tài)調(diào)整div大小使其寬度始終為瀏覽器寬度
需要設(shè)置寬度為整個(gè)瀏覽器寬度的div,當(dāng)然我們可以使用相對(duì)布局的方式做到這一點(diǎn),下面是具體實(shí)現(xiàn),大家可以參考下2014-06-06javascript 歷史記錄 經(jīng)常用于產(chǎn)品最近歷史瀏覽
在很多購(gòu)物網(wǎng)站,都有“產(chǎn)品的瀏覽歷史記錄”,這是個(gè)很貼心的功能。2009-05-05JQuery+drag.js上傳圖片并且實(shí)現(xiàn)圖片拖曳
這篇文章主要介紹了JQuery+drag.js上傳圖片并且實(shí)現(xiàn)圖片拖曳,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11按Enter鍵觸發(fā)事件的jquery方法實(shí)現(xiàn)代碼
這篇文章主要介紹了按Enter鍵觸發(fā)事件的jquery方法,需要的朋友可以參考下2014-02-02jquery點(diǎn)擊回車(chē)鍵實(shí)現(xiàn)登錄效果并默認(rèn)焦點(diǎn)的方法
下面小編就為大家分享一篇jquery點(diǎn)擊回車(chē)鍵實(shí)現(xiàn)登錄效果并默認(rèn)焦點(diǎn)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03jquery?ajax實(shí)現(xiàn)文件上傳提交的實(shí)戰(zhàn)步驟
今天項(xiàng)目中加了一個(gè)上傳文件的需求,我就搞了一下,下面這篇文章主要給大家介紹了關(guān)于jquery?ajax實(shí)現(xiàn)文件上傳提交的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11鋒利的jQuery 要點(diǎn)歸納(三) jQuery中的事件和動(dòng)畫(huà)(下:動(dòng)畫(huà)篇)
《鋒利的jQuery》要點(diǎn)歸納(三) jQuery中的事件和動(dòng)畫(huà)(下:動(dòng)畫(huà)篇)2010-03-03jQuery學(xué)習(xí)筆記之jQuery動(dòng)畫(huà)效果
本次學(xué)習(xí)分為兩個(gè)文件的測(cè)試,第一個(gè)是基本動(dòng)畫(huà),第二個(gè)是滑動(dòng)和透明動(dòng)畫(huà)效果,分別如下2013-09-09jQuery插件cxSelect多級(jí)聯(lián)動(dòng)下拉菜單實(shí)例解析
這篇文章主要為大家詳細(xì)解析了jQuery插件cxSelect多級(jí)聯(lián)動(dòng)下拉菜單實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06