返回值:BooleanjQuery.proxy(function,context)
jQuery $.proxy() 方法概述
jQuery 1.4 新增。返回一個(gè)新函數(shù),并且這個(gè)函數(shù)始終保持了特定的作用域。
當(dāng)有事件處理函數(shù)要附加到元素上,但他們的作用域?qū)嶋H是指向另一個(gè)對(duì)象時(shí),這個(gè)方法最有用了。此外,最妙的是,jQuery能夠確保即便你綁定的函數(shù)是經(jīng)過jQuery.proxy()處理過的函數(shù),你依然可以傳遞原先的函數(shù)來準(zhǔn)確無誤地取消綁定。請(qǐng)參考下面的例子。
這個(gè)函數(shù)還有另一種用法,jQuery.proxy( scope, name )。第一個(gè)參數(shù)是要設(shè)定的作用域?qū)ο?。第二個(gè)參數(shù)是將要設(shè)置作用域的函數(shù)名(必須是第一個(gè)作用域?qū)ο蟮囊粋€(gè)屬性)。
參數(shù)
function,contextFunction,ObjectV1.4
function:將要被改變作用域的函數(shù)
context:一個(gè)object,那個(gè)函數(shù)的作用域會(huì)被設(shè)置到這個(gè)object上來。
context,nameObject,ObjectV1.4
context:一個(gè)object,那個(gè)函數(shù)的作用域會(huì)被設(shè)置到這個(gè)object上來。
name:改變上下文中的函數(shù)名(這個(gè)函數(shù)必須是前一個(gè)參數(shù) 'context' 對(duì)象的屬性)
示例
描述:
強(qiáng)制設(shè)置函數(shù)的作用域,讓this指向obj而不是#test對(duì)象。
HTML 代碼:
<div id="test">Click Here!</div>
jQuery 代碼:
var obj = {
name: "John",
test: function() {
alert( this.name );
$("#test").unbind("click", obj.test);
}
};
$("#test").click( jQuery.proxy( obj, "test" ) );
// 以下代碼跟上面那句是等價(jià)的:
// $("#test").click( jQuery.proxy( obj.test, obj ) );
// 可以與單獨(dú)執(zhí)行下面這句做個(gè)比較。
// $("#test").click( obj.test );