繁体   English   中英

如何在不调用函数的情况下更改jQuery中的执行上下文

[英]How to change execution context in jQuery without invoking the function

我是MooTools的爱好者,习惯于绑定回调函数,例如:

element.addEvent('click', callback.bind(this));

假设是当前的执行上下文。 这一声明意味着,我结合点来的回调函数的执行上下文。 而且,据我所知,某些浏览器(例如Chrome)已将bind()添加到其JavaScript引擎中。

现在我的工作需要我切换到使用jQuery。 显然,bind()在jQuery中具有不同的含义,与MooTools中的addEvent()十分接近。 我想不出一种改变执行上下文的方法。 我必须执行以下操作:

var that = this;
element.click(function () {
    callback.apply(that); // Have to invoke it, and also with extra function wrapper
});

但是我想做类似的事情:

element.click(callback.*bind*(this));

任何jQuery大师都有想法吗?

参见jQuery.proxy()

element.click($.proxy(callback, this));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM