2017-07-21 49 views
0

所以,这是一个奇怪的问题。我有一个CSS/HTML按钮的网页。当我按下按钮时,页面冻结。它不会崩溃,只会冻结(按钮应该在点击后淡出)。另外,我无法打开JavaScript(或f12)控制台,我无法重新加载页面。在页面上,即使当我将鼠标移出按钮或任何可点击的按钮时,鼠标仍然显示为指针。但是,我仍然可以移动鼠标,退出选项卡,转到其他选项卡,打开选项卡并切换全屏页面。
这里是我的HTML:按下按钮后HTML页面会冻结

<!DOCTYPE HTML> 
<html lang="en-US"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Agent Bubble Popper</title> 
     <link href="CSS/main.css" rel="stylesheet"> 
     <script src="https://code.jquery.com/jquery-3.2.1.js"></script> 
     <script src="JS/game.js"></script> 
     <script src="JS/ui.js"></script> 
     <script src="JS/bubble.js"></script> 
     <script src="JS/sprite.js"></script> 
     <script src="JS/board.js"></script> 
     <script src="JS/renderer.js"></script> 
    </head> 
    <body> 
     <canvas id="canvas" width="750" height="500"></canvas> 
     <div id="page"> 
      <div id="topFrame"></div> 
      <div id="game"> 
       <div id="board"></div> 
       <div id="bubblesRemaining"></div> 
      </div> 
      <div id="info"></div> 
      <div id="bottomFrame"></div> 
      <div id="startGame" class="dialog"> 
       <div id="startGameMessage"> 
       <h2>Start a new game</h2> 
      </div> 
      <div class="butStartGame button"> 
       New Game 
      </div> 
      <div class="butInfo button"> 
       Bubble Info 
      </div> 
      </div> 
     </div> 
     <script> 
      var game = new bubbleShoot.game(); 
      game.init(); 
     </script> 
    </body> 
</html> 

(有问题的按钮是“butStartGame按钮”,这实际上是一个div,但就像一个按钮,另外,“butInfo按钮”不冻结的页面。
这里是我的JavaScript(所有的变量定义,这只是关于我按下按钮的部分。

 this.init = function() { 
      $(".butStartGame").on("click", startGame); 
      $(".butInfo").on("click", startInfo); 
     } 
     function startGame(){ 
      $(".butStartGame").off("click", startGame); 
      bubbleAmt = maxBubbles; 
      bubbleShoot.ui.hideDialog(); 
      curBubble = getNextBubble(); 
      board = new bubbleShoot.board(); 
      bubbles = board.getBubbles(); 
      if (!requestAnimationID) { 
       requestAnimationID = setTimeout(renderFrame, 40); 
      }; 
      $("#page").on("click", clickGameScreen); 
     } 

左右格式,我从我的文件复制此顺便说一句对不起,这是不是所有的我的代码
关于“var game = new bubble Shoot.game,game.init'我的代码的一部分:这里显示的JavaScript全部包装在“bubbleShoot.game”中,因此运行“game.init”只是运行代码中显示的“this.init”。
我的问题很简单,就是“为什么我的网页会冻结?”

+0

你有没有试图“改写”代码的jsfiddle,并检查它是如何工作的更新你的问题?也许页面冻结在另一个功能。 –

+2

你的'startGame'中的一个函数被卡在一个死循环中,最好开始调试 – FlamingGenius

+0

这很可能只是一个漏洞,这是浏览器对漏洞的反应。但是我在代码中找不到它。也许被称为其他功能有它。 – VictorGodoi

回答

1

至于问题目前维持它听起来像startGame()的功能之一是停留在一个无限循环

尝试调试,并把一些console.log ("getNextBubble()")如果你开始看到的功能更加的名称,然后,一旦你在一个无限循环

如果不解决你的问题,我强烈建议你用更多的细节

+0

这是一个好主意,但有一个问题:我的JavaScript永远不会运行,因为它只在按下按钮后运行,并且在按下按钮之后页面冻结。 – Hazard

+0

这意味着Java脚本中存在无限循环,导致页面冻结 – FlamingGenius

+0

不,我的意思是'console.log'方法不起作用,因为它永远不会运行。除此之外,一切都很好。 – Hazard