jQuery的$.proxy()應(yīng)用示例介紹
更新時(shí)間:2014年04月03日 15:41:15 作者:
這篇文章主要介紹了jQuery的$.proxy()應(yīng)用,需要的朋友可以參考下
今天在看<<鋒利的jQuery>>時(shí)看到了proxy()的使用,感覺很模糊,就到處找資料.
jQuery的源碼也沒看明白.
不過總算明白了proxy的用法了;
<input type="button" value="測(cè)試" id="guoBtn" name="我是按鈕的name"/>
var obj = {
name: "我是obj的name",
sayName: function () {
alert(this.name);
}
}
$("#guoBtn").click(obj.sayName); //我是按鈕的name
// 如果我想訪問obj的name怎么辦呢?
$("#guoBtn").click($.proxy(obj.sayName,obj));//"我是obj的name"
$("#guoBtn").click($.proxy(obj, "sayName")); //"我是obj的name"
從上面proxy(a,b)的用法可以看出他的參數(shù)有兩種寫法.
第一種:a是一個(gè)function函數(shù),b是這個(gè)函數(shù)的對(duì)象所有者.
第二種:a是一個(gè)對(duì)象,b是一個(gè)字符串,是a的屬性名.
還有這個(gè)實(shí)例就是<<鋒利的jQuery>>上的一個(gè)例子了.
<div id="panel" style="display:none;">
<button>Close</button>
</div>
$("#panel").fadeIn(function () {
$("#panel button").click(function () {
$(this).fadeOut();
});
});
button雖然消失了,但是panel卻沒有消失.可以使用proxy來解決這個(gè)問題.
$("#panel").fadeIn(function () {
var obj = this;
$("#panel button").click($.proxy(function () {
$(this).fadeOut();
}, obj));
});
這樣單擊按鈕之后,panel才會(huì)消失.
個(gè)人感覺proxy最主要就是用來修改函數(shù)執(zhí)行時(shí)的上下文對(duì)象的.
是在apply的基礎(chǔ)上做的封裝,所以說proxy就是我們jQuery自己的apply.

jQuery的源碼也沒看明白.
不過總算明白了proxy的用法了;
復(fù)制代碼 代碼如下:
<input type="button" value="測(cè)試" id="guoBtn" name="我是按鈕的name"/>
復(fù)制代碼 代碼如下:
var obj = {
name: "我是obj的name",
sayName: function () {
alert(this.name);
}
}
$("#guoBtn").click(obj.sayName); //我是按鈕的name
// 如果我想訪問obj的name怎么辦呢?
$("#guoBtn").click($.proxy(obj.sayName,obj));//"我是obj的name"
$("#guoBtn").click($.proxy(obj, "sayName")); //"我是obj的name"
從上面proxy(a,b)的用法可以看出他的參數(shù)有兩種寫法.
第一種:a是一個(gè)function函數(shù),b是這個(gè)函數(shù)的對(duì)象所有者.
第二種:a是一個(gè)對(duì)象,b是一個(gè)字符串,是a的屬性名.
還有這個(gè)實(shí)例就是<<鋒利的jQuery>>上的一個(gè)例子了.
復(fù)制代碼 代碼如下:
<div id="panel" style="display:none;">
<button>Close</button>
</div>
復(fù)制代碼 代碼如下:
$("#panel").fadeIn(function () {
$("#panel button").click(function () {
$(this).fadeOut();
});
});
button雖然消失了,但是panel卻沒有消失.可以使用proxy來解決這個(gè)問題.
復(fù)制代碼 代碼如下:
$("#panel").fadeIn(function () {
var obj = this;
$("#panel button").click($.proxy(function () {
$(this).fadeOut();
}, obj));
});
這樣單擊按鈕之后,panel才會(huì)消失.
個(gè)人感覺proxy最主要就是用來修改函數(shù)執(zhí)行時(shí)的上下文對(duì)象的.
是在apply的基礎(chǔ)上做的封裝,所以說proxy就是我們jQuery自己的apply.
相關(guān)文章
jQuery實(shí)現(xiàn)的簡(jiǎn)單拖動(dòng)層示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)的簡(jiǎn)單拖動(dòng)層,可實(shí)現(xiàn)響應(yīng)鼠標(biāo)拖動(dòng)div層及動(dòng)態(tài)顯示坐標(biāo)值的功能,涉及jQuery鼠標(biāo)響應(yīng)及頁面元素屬性相關(guān)操作技巧,需要的朋友可以參考下2017-02-02easyui下拉框動(dòng)態(tài)級(jí)聯(lián)加載的示例代碼
本篇文章主要介紹了easyui下拉框動(dòng)態(tài)級(jí)聯(lián)加載的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11jquery中判斷圖片是否存在的實(shí)現(xiàn)代碼
有時(shí)候我們需要判斷當(dāng)前的圖片是否存在,方便后期做一些操作,當(dāng)然也可以參考上一篇文章,如果不存在就替換位默認(rèn)圖片2023-06-06jQuery內(nèi)置的AJAX功能和JSON的使用實(shí)例
通過jQuery內(nèi)置的AJAX功能,訪問后臺(tái)獲得JSON格式的數(shù)據(jù),然后通過jQuer把數(shù)據(jù)直接在頁面上顯示,需要的朋友可以參考下2014-07-07jQuery實(shí)現(xiàn)磁力圖片跟隨效果完整示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)磁力圖片跟隨效果,結(jié)合完整實(shí)例形式分析了jQuery事件響應(yīng)及animate方法實(shí)現(xiàn)帶緩沖效果的圖片跟隨效果,需要的朋友可以參考下2016-09-09jQuery實(shí)現(xiàn)遮罩層登錄對(duì)話框
用戶登錄是許多網(wǎng)站必備的功能。有一種方式就是不管在網(wǎng)站的哪個(gè)頁面,點(diǎn)擊登錄按鈕就會(huì)彈出一個(gè)遮罩層,顯示用戶登錄的對(duì)話框。本文將推薦一個(gè)帶二維碼的登錄彈出層,可拖動(dòng)、關(guān)閉,有需要的朋友可以參考一下。2016-12-12jQuery實(shí)現(xiàn)彈出窗口中切換登錄與注冊(cè)表單
本文給大家推薦的是一款jQuery實(shí)現(xiàn)彈出窗口中切換登錄與注冊(cè)表單的特效。適用瀏覽器:IE8+、FireFox、Chrome、Safari、Opera。十分的方便實(shí)用,有需要的小伙伴可以參考下。2015-06-06