说我有这个(jqueryUI插件):
$.widget('ui.someplugin', {
_create: function() {
return $(this.element).click(this._onClick);
},
_onClick: function(e) {
return this._someFunc();
},
_someFunc: function() {
return console.log('someFunc');
}
});
它不起作用 - _onClick接收DOM元素作为其范围。我可以让处理程序再次使用$(e.target).data('someplugin')引用该插件,但如果我想订阅其他DOM元素事件那就没用了。我如何重新调整它以便它能满足我的需求?
答案 0 :(得分:7)
使用$.proxy(func, context);
,func
将调用范围为context
。
return $(this.element).click($.proxy(this._onClick, this));