Jquery:未捕获RangeError:超出最大调用堆栈大小

时间:2013-02-20 12:17:29

标签: javascript jquery

这是我的javascript。在从我的合作伙伴那里进行Git Pull之前,它运作良好。点击一下,提示加载了花式框。负载现在不起作用。

Game = {

loadLevel: function(levelNum) {
    $("#level").load("/level/" + levelNum + "/", function() {

        // disable all hints except the first
        $("#level .hint:not(:first)").prop('disabled', true);

        // clicking a hint displays the hint
        $("#level .hint").each(function(index, el) {
            $(el).fancybox({
                href : $(el).attr("data-url"),
                type : 'ajax',
            });
        });

        // enable next hint when clicking on a hint
        $("#level .hint").on("click", function() {
            $(this).next().prop('disabled', false);
        });

        // if answer is correct load next level
        $("#answer").on("click", function() {
            $.get("/answer/" + levelNum + "/", {
                guess : $('.guess').val()
            }, function(answer) {
                console.log(answer);
                if (answer) {
                    Game.loadLevel(levelNum+1);
                }
            });
        });
    });
},

}

2 个答案:

答案 0 :(得分:2)

从错误消息中,它听起来像你的伙伴的代码在某处有一个无限循环的递归调用,或者调用了太多的函数。

答案 1 :(得分:1)

试试这个:

 loadLevel: function(levelNum) {
   if (levelNum > 5) return;
   $("#level").load("/level/" + levelNum + "/", function() {

我认为问题可能就在这里 - 但它可能出现在你没有展示的代码中:

               Game.loadLevel(levelNum+1);

这会递归,但没有办法阻止它。