2013-02-20 3 views
1

Вот мой javascript. Он работал хорошо до проведения Git Pull от моего партнера. По щелчку подсказка загружается с причудливой коробкой. Нагрузка не работает.JQuery: Uncaught RangeError: Максимальный размер стека вызовов

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); 
       } 
      }); 
     }); 
    }); 
}, 

} 

ответ

1

Попробуйте это:

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

Я думаю, что проблема может быть здесь, - но это может быть в коде вы не показываете:

   Game.loadLevel(levelNum+1); 

Это рекурсия, но нет никакого способа, чтобы остановить его.

2

Из сообщения об ошибке, это звучит как код вашего партнера либо имеет infinatly зацикливания рекурсивного вызова где-то звонит слишком много функций глубоко.

Смежные вопросы