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: thisajax オプションとして渡します。

このオブジェクトは、すべての 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 に答える