我有对象“游戏”,当我调用创建游戏时,它使用jquery ajax ...一切正常,但是当我想从ajax成功函数调用addLoadEvent时它不会调用它,当我尝试调用此函数时createGame(这里注释了代码的一部分)它的作品......你知道为什么我不能从ajax成功中调用它吗?我尝试从成功控制台日志,它是在控制台打印,所以ajax运行良好。感谢大家的帮助
var game=new ttt_game();
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
function ttt_game () {
this.createGame = createGame;
function createGame(){
/*addLoadEvent(function(){
document.getElementById('player1_n').textContent=player1+':';
document.getElementById('player2_n').textContent=player2+':';
document.getElementById('turn').textContent='Čaká sa na príchod súpera.';
});*/
$.ajax({
type: "POST",
url: "process.php",
data: {'function': 'create','game_id': game_id,'player1': player1},
dataType: "json",
success: function(data){
addLoadEvent(function(){
document.getElementById('player1_n').textContent=player1+':';
document.getElementById('player2_n').textContent=player2+':';
document.getElementById('turn').textContent='Čaká sa na príchod súpera.';
});
},
error: function(jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
}
}
game.createGame();
答案 0 :(得分:0)
它似乎在addLoadEvent
上,你正在添加一个window.onload
处理程序,当你从createGame
调用它时window.onload
尚未被解雇时,这是有效的但是当你从成功处理程序调用它时,onload事件可能已经被触发,因为ajax是异步处理的