jQuery的$.proxy()應(yīng)用示例介紹
更新時(shí)間:2014年04月03日 15:41:15 作者:
這篇文章主要介紹了jQuery的$.proxy()應(yīng)用,需要的朋友可以參考下
今天在看<<鋒利的jQuery>>時(shí)看到了proxy()的使用,感覺(jué)很模糊,就到處找資料.
jQuery的源碼也沒(méi)看明白.
不過(guò)總算明白了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
// 如果我想訪問(wèn)obj的name怎么辦呢?
$("#guoBtn").click($.proxy(obj.sayName,obj));//"我是obj的name"
$("#guoBtn").click($.proxy(obj, "sayName")); //"我是obj的name"
從上面proxy(a,b)的用法可以看出他的參數(shù)有兩種寫(xiě)法.
第一種: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卻沒(méi)有消失.可以使用proxy來(lái)解決這個(gè)問(wèn)題.
$("#panel").fadeIn(function () {
var obj = this;
$("#panel button").click($.proxy(function () {
$(this).fadeOut();
}, obj));
});
這樣單擊按鈕之后,panel才會(huì)消失.
個(gè)人感覺(jué)proxy最主要就是用來(lái)修改函數(shù)執(zhí)行時(shí)的上下文對(duì)象的.
是在apply的基礎(chǔ)上做的封裝,所以說(shuō)proxy就是我們jQuery自己的apply.
jQuery的源碼也沒(méi)看明白.
不過(guò)總算明白了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
// 如果我想訪問(wèn)obj的name怎么辦呢?
$("#guoBtn").click($.proxy(obj.sayName,obj));//"我是obj的name"
$("#guoBtn").click($.proxy(obj, "sayName")); //"我是obj的name"
從上面proxy(a,b)的用法可以看出他的參數(shù)有兩種寫(xiě)法.
第一種: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卻沒(méi)有消失.可以使用proxy來(lái)解決這個(gè)問(wèn)題.
復(fù)制代碼 代碼如下:
$("#panel").fadeIn(function () {
var obj = this;
$("#panel button").click($.proxy(function () {
$(this).fadeOut();
}, obj));
});
這樣單擊按鈕之后,panel才會(huì)消失.
個(gè)人感覺(jué)proxy最主要就是用來(lái)修改函數(shù)執(zhí)行時(shí)的上下文對(duì)象的.
是在apply的基礎(chǔ)上做的封裝,所以說(shuō)proxy就是我們jQuery自己的apply.
相關(guān)文章
Jquery多選下拉列表插件jquery multiselect功能介紹及使用
支持點(diǎn)擊label實(shí)現(xiàn)checkbox組選擇,頭部選項(xiàng),如全選/ 取消全選 /關(guān)閉功能,支持鍵盤(pán)選擇等等,下面與大家分享下具體使用2013-05-05
jQuery Deferred和Promise創(chuàng)建響應(yīng)式應(yīng)用程序詳細(xì)介紹
接下來(lái)我們一起探索一下JavaScript中的 Deferred 和 Promise 的概念Deferred 提供了一個(gè)抽象的非阻塞的解決方案(如Ajax 請(qǐng)求的響應(yīng)),它創(chuàng)建一個(gè)promise對(duì)象,其目的是在未來(lái)某個(gè)時(shí)間點(diǎn)返回一個(gè)響應(yīng),感興趣的可以參考下2013-03-03
jQuery實(shí)現(xiàn)圖片滑動(dòng)效果
本文主要介紹了jQuery實(shí)現(xiàn)圖片滑動(dòng)效果的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03
使用jquery模擬a標(biāo)簽的click事件無(wú)法實(shí)現(xiàn)跳轉(zhuǎn)的解決
這篇文章主要給大家介紹了關(guān)于使用jquery模擬a標(biāo)簽的click事件無(wú)法實(shí)現(xiàn)跳轉(zhuǎn)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
JQUERY 獲取IFrame中對(duì)象及獲取其父窗口中對(duì)象示例
經(jīng)常會(huì)用到iframe,難免會(huì)碰到需要在父窗口中使用iframe中的元素、或者在iframe框架中使用父窗口的元素,下面為大家簡(jiǎn)單介紹下本人的使用心得2013-08-08

