定义和用法
接受一个已有的函数,并返回一个带特定上下文的新的函数。
该方法通常用于向上下文指向不同对象的元素添加事件。
提示:如果您绑定从 $.proxy 返回的函数,jQuery 仍然可以通过传递的原先的函数取消绑定正确的函数。
实例
强制执行 objPerson 内的 "test" 函数的上下文:
$(document).ready(function(){
var objPerson = {
name: "John Doe",
age: 32,
test: function(){
$("p").after("Name: " + this.name + "<br> Age: " + this.age);
}
};
$("button").click($.proxy(objPerson,"test"));
});
执行结果:
Name: John Doe
Age: 32
语法 1
$(selector).proxy(function,context)
示例
$(document).ready(function(){
test=function()
{
this.txt="这是一个对象属性";
$("div").click($.proxy(this.myClick,this));
};
test.prototype.myClick = function(event)
{
alert(this.txt);
alert(event.currentTarget.nodeName);
};
var x = new test();
});
参数 描述
function 要被调用的已有的函数
context 函数所在的对象的名称
语法 2
$(selector).proxy(context,name)
$(document).ready(function(){
var objPerson = {
name: "John Doe",
age: 32,
test: function(){
$("p").after("Name: " + this.name + "<br> Age: " + this.age);
}
};
$("button").click($.proxy(objPerson,"test"));
});
参数 描述
function 要被调用的已有的函数
name 已有的函数,其上下文将被改变(应该是 context 对象的属性)。