0
我有對象「遊戲」,當我打電話創建遊戲時,它使用jquery ajax ...一切正常,但是當我想從ajax成功函數addLoadEvent調用它並沒有調用它,當我嘗試從createGame(這裏代碼的一部分代碼)調用這個函數,它的作品...你知道爲什麼我不能從ajax成功調用它嗎?我嘗試從成功的控制檯日誌,它是在控制檯打印,所以阿賈克斯效果很好。感謝大家的幫助JQuery .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();
你是否檢查是否調用了'success'處理程序?還請檢查您的瀏覽器控制檯以查看是否有任何錯誤 –
好吧...它看起來像在addLoadEvent上,您正在添加一個window.onload()處理程序,當它從CreateGame調用時,被稱爲'window.onload'還沒有被觸發,但是當你從成功處理程序調用它時,'onload'事件可能已經被觸發,因爲ajax被異步處理。 –
@ArunPJohny它是愚蠢的:)你是對的'窗口。 onload'被解僱了,當我試圖在成功之外的函數'addLoadEvent'它的作品,但昨天當我編碼...它不工作,我必須使用這個函數'addLoadEvent',因爲html元素不是創建:) 謝謝尋求幫助 –