使用$.proxy javascript调用函数
我想使用$.proxy在单击事件时加载函数。 如果我使用下面的click事件加载函数,那么一切正常 单击正在工作的事件使用$.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(
$('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时,此功能工作正常但如果我在做点击功能,那就不行了。我甚至试过你上面的建议。有什么想法吗?