使用$.proxy javascript调用函数

使用$.proxy javascript调用函数,javascript,jquery,html,proxy,Javascript,Jquery,Html,Proxy,我想使用$.proxy在单击事件时加载函数。 如果我使用下面的click事件加载函数,那么一切正常 单击正在工作的事件 $('element').click($.proxy(this.doProcess, this)); $('element').click(function(){ // Perform other things $.proxy(this.doProcess, this); }); 单击不起作用的事件 $('element').click($.proxy(

我想使用$.proxy在单击事件时加载函数。 如果我使用下面的click事件加载函数,那么一切正常

单击正在工作的事件

$('element').click($.proxy(this.doProcess, this));
$('element').click(function(){
    // Perform other things
    $.proxy(this.doProcess, this);  
});
单击不起作用的事件

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

正如您所看到的,我希望在加载函数之前对click事件执行其他操作。如果我使用“.click(function()…”而不是简单地使用“.click()”,您能帮我弄清楚为什么不加载它吗..“

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

$.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
});

谢谢你的快速回复。我试过了,但没有加载功能doProcess@mak不客气,我已经在JSFIDLE上创建了一个演示,实际上我正在使用一个第三方插件,我想根据需要自定义功能。我是否可以在您的电子邮件中向您发送代码文件?您只是指出了问题?@mak W嗯,这需要反向工程,可能会花费太多的时间,如果我能帮助你,我会很高兴,但不幸的是,我现在很忙。如果有新问题,我建议移植另一个问题。我在这个链接上创建了一个问题。因此它与此主题相关。使用simple cli时,此功能工作正常但如果我在做点击功能,那就不行了。我甚至试过你上面的建议。有什么想法吗?