JQuery .ajax не вызывает функцию
У меня есть объект "игра", и когда я вызываю создание игры, его использование 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();
1 ответ
Это похоже на addLoadEvent
Вы добавляете window.onload
обработчик, это работает, когда вы звоните из createGame
когда, когда это называется window.onload
еще не сработало, но когда вы вызываете его из обработчика успеха, событие onload могло уже сработать, потому что ajax обрабатывается асинхронно