使用$ .proxy javascript调用函数

时间:2014-11-14 23:55:33

标签: javascript jquery html proxy

我想使用$ .proxy在点击事件上加载一个函数。 如果我使用下面的点击事件加载该功能,那么一切正常。

点击正在运作的活动

$('element').click($.proxy(this.doProcess, this));

点击无法使用的活动

$('element').click(function(){
    // Perform other things
    $.proxy(this.doProcess, this);  
});

正如您所看到的,我想在加载函数之前对click事件执行其他操作。如果我使用“.click(function()...”而不是简单的'.click(),你可以帮我找出它没有加载的原因。'

1 个答案:

答案 0 :(得分:1)

因为在第一个片段中,click函数调用返回的函数。在第二个代码段中,您将当前this值绑定到该函数,但您不会调用返回的函数。您可以使用调用运算符(())来调用函数:

$.proxy(this.doProcess, this)();  

请注意,匿名函数(当前事件处理程序)的上下文中的this并未引用外部上下文的this关键字值,可以缓存值:

var that = this;
$('element').click(function() {
    // Perform other things
    $.proxy(that.doProcess, this)(/* arguments go here */);  
//           |               |
//           |               ----- refers to the clicked element
//           ----- reference of the outer context's `this` value
});