为什么我的JS程序不会运行?

时间:2011-10-24 02:00:00

标签: javascript

我之前发布了一个类似的问题,但它被删除了,因为我觉得我在描述我的问题时表现不佳。

请在此处查看我当前的节目:

http://rich2233.comoj.com/

我的小伙伴: http://jsfiddle.net/rich2233/JGvAD/

我正试图模仿这个游戏:http://javascript.internet.com/games/concentration.html

我的版本不会使用图片,而是使用简单的数字。一旦游戏结束,它将提醒用户他们花了多少次尝试来匹配所有内容。它也不会跟踪时间。

我认为我的代码在逻辑方面完全正确,但是它没有运行。我是JS的新手,我的调试技巧有限,但我似乎无法找到任何语法错误。任何人都可以帮助这个程序工作吗?非常感谢。

var attempts = 0;
var firstClick;             
var secondClick;
var numFoundPairs = 0;         
var click = true;

function display(id)
{
  attempts++;
  if (click == false)
  return;
  var num = parseInt(id);
  if (firstClick == null)
  {
  firstClick = num; 
  document.getElementById(id).value = a[num];
  return;
  }
  if (secondClick == null)
  secondClick = num;

 if (firstClick == secondClick)
 {  
 secondClick = null;
 return;
 }

 document.getElementById(boxNum).value = a[num];
 if (document.getElementById(firstClick).value != 
 document.getElementById(secondClick).value )
  {
  click = false;
  setTimeout ('hide(' + secondClick + ')', 3000);
  setTimeout ('hide(' + firstClick  + ')', 3000);
 }
 else
 {
 /* Show the identical blocks */
 firstClick = null;
 secondClick = null;
 }
 /* If the player found the eight pairs (since 16/2 = 8) */
 if (numFoundPairs == 8)
 {
  /* Let them know how many attempts it took them */
   alert ("You took " + Math.floor(String(attempts)/2) + " attempts.");  
  }
}
/* Function to hide the particular id */
function hide (id)
{
document.getElementById(id).value = "     ";
click = true;
}

/* Create the array of number and distribute them randomly on the grid */
function create()
{
a = new Array (1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 
             6, 6, 7, 7, 8, 8);
for (var i = 0; i < a.length; i++)
{
var idx = Math.floor (Math.random() * a.length);
var tmp = a[i];
a[i] = a[idx];
a[idx] = tmp;
}
}

1 个答案:

答案 0 :(得分:2)

http://rich2233.comoj.com/处的错误发生在memory.js。

的第28行

未捕获的ReferenceError:未定义boxNum

您应该考虑使用Firebug(适用于Firefox)或Chrome开发人员工具(来自股票,按CTRL + SHIFT + J打开它们)等JavaScript控制台。 Firefox也有一个JavaScript错误窗口,也有库存。

他们会帮助你立即发现这样的错误。