可能重复:
AJAX 成功中的 $(this) 不起作用
我有以下示例代码(JSFiddle 跟随)
AdvancedSearch = function() {
this.current = 'test';
}
AdvancedSearch.prototype.InitPage = function() {
var t = this.current;
this.PrePopulate()
}
AdvancedSearch.prototype.UpdateData= function() {
alert(this.current);
}
AdvancedSearch.prototype.PrePopulate = function() {
this.UpdateData();
$.ajax({
url: 'http://fiddle.jshell.net/',
success: function(msg) {
this.UpdateData();
}
});
}
var as = new AdvancedSearch();
as.InitPage();
我在那里有“ http://fiddle.jshell.net ”,所以防止他们网站上的 Access-Control-Allow-Origin 错误。
执行此代码时,我收到以下错误:
未捕获的类型错误:对象 # 没有方法“UpdateData”
如果你执行JSFiddle,你会发现调用PrePopulate的时候,它运行函数开头的this.UpdateData()就好了。但是,一旦 Ajax 调用完成,您就会收到错误消息。
对为什么会发生这种情况有任何想法吗?也许我以错误的方式处理这个问题。任何见解都会有所帮助。
这是我的 JSFiddle:http: //jsfiddle.net/B4NRY/2/