如何将对象上下文传递给.on()回调函数

时间:2014-06-02 15:08:48

标签: javascript jquery this jquery-callback

我正在使用模块模式构建我的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();

工作。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我认为您可以使用以下方法之一设置上下文: