Javascript ajax不调用函数
我有一个对象“游戏”,当我调用creategame时,它使用jqueryajax。。。一切正常,但当我想从ajax成功函数addLoadEvent调用它时,它不会调用它,当我尝试从createGame(此处代码的注释部分)调用此函数时,它会工作。。。你知道为什么我不能称之为ajax成功吗?我从success中尝试了控制台日志,它是在控制台中打印的,所以ajax工作得很好。谢谢大家的帮助Javascript ajax不调用函数,javascript,jquery,ajax,function,function-call,Javascript,Jquery,Ajax,Function,Function Call,我有一个对象“游戏”,当我调用creategame时,它使用jqueryajax。。。一切正常,但当我想从ajax成功函数addLoadEvent调用它时,它不会调用它,当我尝试从createGame(此处代码的注释部分)调用此函数时,它会工作。。。你知道为什么我不能称之为ajax成功吗?我从success中尝试了控制台日志,它是在控制台中打印的,所以ajax工作得很好。谢谢大家的帮助 var game=new ttt_game(); function addLo
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();
它看起来像是在
addLoadEvent
上,您正在添加一个窗口。onload
处理程序,当您从createGame
调用时,当调用窗口时,这一点有效。onload
尚未启动,但当您从成功处理程序调用它时,onload事件可能已经启动,因为ajax是异步处理的您是否检查是否调用了success
处理程序?同时检查您的浏览器控制台是否有任何错误OK。。。它看起来像是在addLoadEvent
上,您正在添加一个窗口。onload()
处理程序,当您从createGame
调用它时,当调用窗口时,此功能会起作用。onload
尚未触发,但当您从成功处理程序调用它时,由于ajax已被处理,因此onload
事件可能已经触发asynchronously@ArunPJohny这很愚蠢:)你说得对“窗口。加载”被解雇了当我在函数“addLoadEvent”之外成功尝试它时,它可以工作,但昨天当我编写它时。。。它不起作用,我必须使用这个函数“addLoadEvent”,因为html元素没有被创建:)谢谢你的帮助,我将把它作为一个答案发布