我正在使用模块模式构建我的JavaScript,如here所述。
这是我的代码的简化版本:
var obj = {
bindUIActions: function(){
$('#button').on('click', {self: this}, this.doStuff);
},
doStuff: function(e){
$(this).fadeOut();
var self = e.data.self;
self.doSomethingElse();
},
doSomethingElse: function(){
//....
}
}
我需要将对象上下文传递给doStuff方法,因为我不想使用:
obj.doSomethingElse();
所以我可以在其他地方再次使用代码,或者稍后更改对象名称('obj')。 使用事件数据并不是最好的解决方案,那么有更好的方法来完成这项工作吗?
我使用$ .proxy来更改.on()回调函数的上下文,并且可以正常工作。问题是我需要保持click-element的这个上下文,以获得
$(this).fadeOut();
工作。
提前致谢!
答案 0 :(得分:0)
我认为您可以使用以下方法之一设置上下文: