国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery的$.proxy()應用示例介紹

2019-11-20 20:52:26
字體:
供稿:網(wǎng)友
今天在看<<鋒利的jQuery>>時看到了proxy()的使用,感覺很模糊,就到處找資料.

 

jQuery的源碼也沒看明白.

不過總算明白了proxy的用法了;
復制代碼 代碼如下:

<input type="button" value="測試" 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是一個function函數(shù),b是這個函數(shù)的對象所有者.

第二種:a是一個對象,b是一個字符串,是a的屬性名.

還有這個實例就是<<鋒利的jQuery>>上的一個例子了.
復制代碼 代碼如下:

<div id="panel" style="display:none;">
<button>Close</button>
</div>

復制代碼 代碼如下:

$("#panel").fadeIn(function () {
$("#panel button").click(function () {
$(this).fadeOut();
});
});


button雖然消失了,但是panel卻沒有消失.可以使用proxy來解決這個問題.
復制代碼 代碼如下:

$("#panel").fadeIn(function () {
var obj = this;
$("#panel button").click($.proxy(function () {
$(this).fadeOut();
}, obj));
});

這樣單擊按鈕之后,panel才會消失.

個人感覺proxy最主要就是用來修改函數(shù)執(zhí)行時的上下文對象的.

是在apply的基礎(chǔ)上做的封裝,所以說proxy就是我們jQuery自己的apply.
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 茶陵县| 汪清县| 兰考县| 彰武县| 桐城市| 仁布县| 黔江区| 穆棱市| 潢川县| 濮阳县| 都匀市| 旅游| 木兰县| 石棉县| 贵南县| 英吉沙县| 南宫市| 汾西县| 甘孜| 新丰县| 内乡县| 怀柔区| 阿尔山市| 穆棱市| 广东省| 娄烦县| 亚东县| 澎湖县| 华亭县| 湟源县| 密云县| 沂水县| 阳朔县| 吉林市| 青田县| 金寨县| 大化| 南木林县| 新田县| 黄大仙区| 内丘县|