重複の可能性:
$(this) 内部の AJAX 成功が機能しない
私は次のサンプルコードを持っています(フォローする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 エラーが発生しないようにします。
このコードを実行すると、次のエラーが発生します。
キャッチされていない TypeError: オブジェクト # にはメソッド 'UpdateData' がありません
JSFiddle を実行すると、PrePopulate が呼び出されると、関数の先頭で this.UpdateData() が正常に実行されることがわかります。しかし、Ajax 呼び出しが終了するとすぐに、エラーが発生します。
なぜこれが起こっているのかについて何か考えはありますか?おそらく、私はこれに間違った方法でアプローチしています。どんな洞察も役に立ちます。
ここに私の JSFiddle があります: http://jsfiddle.net/B4NRY/2/