JQuery .ajax不调用函数

时间:2013-08-22 10:52:07

标签: javascript jquery ajax function function-call

我有对象“游戏”,当我调用创建游戏时,它使用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 个答案:

答案 0 :(得分:0)

它似乎在addLoadEvent上,你正在添加一个window.onload处理程序,当你从createGame调用它时window.onload尚未被解雇时,这是有效的但是当你从成功处理程序调用它时,onload事件可能已经被触发,因为ajax是异步处理的

相关问题