開發(fā)插件的兩個方法jquery.fn.extend與jquery.extend
更新時間:2013年11月21日 16:09:54 作者:
jQuery為開發(fā)插件提拱了兩個方法,分別是jquery.fn.extend與jquery.extend,接下來就為大家介紹下兩者的具體使用
jQuery為開發(fā)插件提拱了兩個方法,分別是:
JavaScript代碼
jQuery.fn.extend(object);
jQuery.extend(object);
jQuery.extend(object); 為擴展jQuery類本身.為類添加新的方法。
jQuery.fn.extend(object);給jQuery對象添加方法。
fn 是什么東西呢。查看jQuery代碼,就不難發(fā)現(xiàn)。
JavaScript代碼
jQuery.fn = jQuery.prototype = {
init: function( selector, context ) {//….
//……
};
原來 jQuery.fn = jQuery.prototype.對prototype肯定不會陌生啦。
雖然 javascript 沒有明確的類的概念,但是用類來理解它,會更方便。
jQuery便是一個封裝得非常好的類,比如我們用 語句 $(“#btn1″) 會生成一個 jQuery類的實例。
jQuery.extend(object); 為jQuery類添加添加類方法,可以理解為添加靜態(tài)方法。如:
XML/HTML代碼
$.extend({
add:function(a,b){return a+b;}
});
便為 jQuery 添加一個為 add 的 “靜態(tài)方法”,之后便可以在引入 jQuery 的地方,使用這個方法了,
JavaScript代碼
$.add(3,4); //return 7
jQuery.fn.extend(object); 對jQuery.prototype進得擴展,就是為jQuery類添加“成員函數(shù)”。jQuery類的實例可以使用這個“成員函數(shù)”。
比如我們要開發(fā)一個插件,做一個特殊的編輯框,當(dāng)它被點擊時,便alert 當(dāng)前編輯框里的內(nèi)容??梢赃@么做:
JavaScript代碼
$.fn.extend({
alertWhileClick:function(){
$(this).click(function(){
alert($(this).val());
});
}
});
$(“#input1″).alertWhileClick(); //頁面上為:<input id=”input1″ type=”text”/>
$(“#input1″) 為一個jQuery實例,當(dāng)它調(diào)用成員方法 alertWhileClick后,便實現(xiàn)了擴展,每次被點擊時它會先彈出目前編輯里的內(nèi)容。
真實的開發(fā)過程中,當(dāng)然不會做這么小白的插件,事實上jQuery提拱了豐富的操作文檔,事件,CSS ,Ajax、效果的方法,結(jié)合這些方法,便可以開發(fā)出更加 Niubility 的插件。
注意:
在這里還有一個特殊的地方,就是在函數(shù)開頭的地方有jQuery.extend = jQuery.fn.extend,而在程序的前面已經(jīng)將jQuery.prototype賦值給jQuery.fn了,所以在后面的調(diào)用中會出現(xiàn) jQuery.extend()和jQuery.fn.extend()的不同調(diào)用,這兩個方法調(diào)用產(chǎn)生的結(jié)果也不一樣,jQuery.extend() 的調(diào)用并不會把方法擴展到對象的實例上,引用它的方法也需要通過jQuery類來實現(xiàn),如jQuery.init(),而 jQuery.fn.extend()的調(diào)用把方法擴展到了對象的prototype上,所以實例化一個jQuery對象的時候,它就具有了這些方法,這 是很重要的,在jQuery.js中到處體現(xiàn)這一點
JavaScript代碼
復(fù)制代碼 代碼如下:
jQuery.fn.extend(object);
jQuery.extend(object);
jQuery.extend(object); 為擴展jQuery類本身.為類添加新的方法。
jQuery.fn.extend(object);給jQuery對象添加方法。
fn 是什么東西呢。查看jQuery代碼,就不難發(fā)現(xiàn)。
JavaScript代碼
復(fù)制代碼 代碼如下:
jQuery.fn = jQuery.prototype = {
init: function( selector, context ) {//….
//……
};
原來 jQuery.fn = jQuery.prototype.對prototype肯定不會陌生啦。
雖然 javascript 沒有明確的類的概念,但是用類來理解它,會更方便。
jQuery便是一個封裝得非常好的類,比如我們用 語句 $(“#btn1″) 會生成一個 jQuery類的實例。
jQuery.extend(object); 為jQuery類添加添加類方法,可以理解為添加靜態(tài)方法。如:
XML/HTML代碼
復(fù)制代碼 代碼如下:
$.extend({
add:function(a,b){return a+b;}
});
便為 jQuery 添加一個為 add 的 “靜態(tài)方法”,之后便可以在引入 jQuery 的地方,使用這個方法了,
JavaScript代碼
復(fù)制代碼 代碼如下:
$.add(3,4); //return 7
jQuery.fn.extend(object); 對jQuery.prototype進得擴展,就是為jQuery類添加“成員函數(shù)”。jQuery類的實例可以使用這個“成員函數(shù)”。
比如我們要開發(fā)一個插件,做一個特殊的編輯框,當(dāng)它被點擊時,便alert 當(dāng)前編輯框里的內(nèi)容??梢赃@么做:
JavaScript代碼
復(fù)制代碼 代碼如下:
$.fn.extend({
alertWhileClick:function(){
$(this).click(function(){
alert($(this).val());
});
}
});
$(“#input1″).alertWhileClick(); //頁面上為:<input id=”input1″ type=”text”/>
$(“#input1″) 為一個jQuery實例,當(dāng)它調(diào)用成員方法 alertWhileClick后,便實現(xiàn)了擴展,每次被點擊時它會先彈出目前編輯里的內(nèi)容。
真實的開發(fā)過程中,當(dāng)然不會做這么小白的插件,事實上jQuery提拱了豐富的操作文檔,事件,CSS ,Ajax、效果的方法,結(jié)合這些方法,便可以開發(fā)出更加 Niubility 的插件。
注意:
在這里還有一個特殊的地方,就是在函數(shù)開頭的地方有jQuery.extend = jQuery.fn.extend,而在程序的前面已經(jīng)將jQuery.prototype賦值給jQuery.fn了,所以在后面的調(diào)用中會出現(xiàn) jQuery.extend()和jQuery.fn.extend()的不同調(diào)用,這兩個方法調(diào)用產(chǎn)生的結(jié)果也不一樣,jQuery.extend() 的調(diào)用并不會把方法擴展到對象的實例上,引用它的方法也需要通過jQuery類來實現(xiàn),如jQuery.init(),而 jQuery.fn.extend()的調(diào)用把方法擴展到了對象的prototype上,所以實例化一個jQuery對象的時候,它就具有了這些方法,這 是很重要的,在jQuery.js中到處體現(xiàn)這一點
您可能感興趣的文章:
- jQuery.extend()、jQuery.fn.extend()擴展方法示例詳解
- 淺談jquery.fn.extend與jquery.extend區(qū)別
- jQuery學(xué)習(xí)筆記之jQuery.extend(),jQuery.fn.extend()分析
- jQuery插件開發(fā)的兩種方法及$.fn.extend的詳解
- jquery的extend和fn.extend的使用說明
- jQuery中extend()和fn.extend()方法詳解
- Jquery實現(xiàn)$.fn.extend和$.extend函數(shù)
- jquery簡單插件制作(fn.extend)完整實例
- 深入理解jquery的$.extend()、$.fn和$.fn.extend()
- jQuery.extend 與 jQuery.fn.extend的用法及區(qū)別實例分析
相關(guān)文章
jquery ajaxfileuplod 上傳文件 essyui laoding 效果【防止重復(fù)上傳文件】
點擊一次上傳, 當(dāng)上傳操作結(jié)束后才能操作界面,實現(xiàn)方式是通過 ajaxfileuplod 上傳文件,需要的朋友參考下吧2018-05-05
jQuery Ajax之$.get()方法和$.post()方法
load()方法通常用來從Web服務(wù)器上獲取靜態(tài)的數(shù)據(jù)文件,然而這并不能體現(xiàn)Ajax的全部價值。在項目中,如果需要傳遞一些參數(shù)給服務(wù)器中的頁面,那么可以使用$.get()或者$.post()方法(或者是后面要講解到的$.ajax方法)。2009-10-10
jQuery ''行 4954 錯誤: 不支持該屬性或方法'' 的問題解決方法
這個問題只在IE下出現(xiàn)。詭異的是,對于出現(xiàn)這個問題的頁面,重新刷新一下就又好了,Ajax 工作一切正常。順便說一下,我的 jQuery 版本是 1.4.2。2011-01-01
Jquery給當(dāng)前頁或者跳轉(zhuǎn)后頁面的導(dǎo)航欄添加選中后樣式的實例
下面小編就為大家?guī)硪黄狫query給當(dāng)前頁或者跳轉(zhuǎn)后頁面的導(dǎo)航欄添加選中后樣式的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12
jquery基礎(chǔ)教程之?dāng)?shù)組使用詳解
jQuery的數(shù)組處理、便捷、功能齊全。一步到位的封裝了很多原生JavaScript數(shù)組不能企及的功能。下面是jquery數(shù)組的使用詳解,需要的朋友可以參考下2014-03-03
從零開始學(xué)習(xí)jQuery (七) jQuery動畫實現(xiàn) 讓頁面動起來
開發(fā)人員一直痛疼做動畫. 但是有了jQuery你會瞬間成為別人(那些不知道jQuery的人)眼里的動畫高手! 本文將介紹jQuery的動畫相關(guān)函數(shù).原來做動畫如此簡單!2011-02-02

