可能重复:
Is there a way for a JQuery ajax success function to access the object it’s contained in?
我有一些类似的代码
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的实例,但实际上并非如此。那是为什么?
答案 0 :(得分:7)
将context: this
作为ajax选项传递。
此对象将成为所有与Ajax相关的回调的上下文。默认情况下,上下文是一个对象,表示调用中使用的ajax设置(
$.ajaxSettings
与传递给$.ajax
的设置合并)。
$.ajax({
type: 'POST',
url: $('#form').attr('action'),
data: $('#form').serialize(),
context: this,
success: this.callback
});