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 обрабатывается асинхронно

Другие вопросы по тегам