2

可能重复:
有没有办法让 JQuery ajax 成功函数访问它包含的对象?

我有一些这样的代码

myClass.prototype.doStuff = function(){

  $.ajax({
        type: 'POST',
        url: $('#form').attr('action'),
        data: $('#form').serialize(),
        success: this.callback
  });
};

myClass.prototype.callback = function(data){
   if(this.someFlag){
     //do some stuff  
   }

};

在这种情况下,我应该this是 myClass 的实例,但实际上并非如此。这是为什么?

4

1 回答 1

7

context: this作为 ajax 选项传递。

该对象将成为所有与 Ajax 相关的回调的上下文。默认情况下,上下文是一个对象,表示调用中使用的 ajax 设置($.ajaxSettings与传递给的设置合并$.ajax)。

$.ajax({
    type: 'POST',
    url: $('#form').attr('action'),
    data: $('#form').serialize(),
    context: this,
    success: this.callback
});
于 2012-12-13T15:44:38.917 回答