duomumu 发表于 2011-6-22 12:57:40

帮忙看这个程序错在哪里?

想用JavaScript写一个二阶魔方,先写了下面这个测试网页,检测网页对按键的反应,结果没反应。
是我写错了还是其它问题?
谢谢
<html>
<head><p>Pocket Cube</p>
<script type="text/javascript">
function getKeys(e)
{
  var keynum
  var keychar
  var numcheck
  if(window.event)
  {
   keynum=e.keyCode
  }
  else if(e.which>
  {
   keynum=e.which
  }
  keychar=String.fromCharCode(keynum)
  numcheck=/\d/
  switch(keychar)
  {
   case r:
    document.cube.src="1.jpg"
    break
   case l:
    document.cube.src="2.jpg"
    break
   default:
    document.cube.src="0.jpg"
  }
return !numcheck.test(keychar)
}
</script>
</head>
<body>
<img border="0" alt="" src="0.jpg" name="cube"  />
</body>
</html>

sokoban 发表于 2011-6-22 13:07:56

基本上错得比较离谱。语法就不对, else if(e.which> 左边是圆括号,右边是尖括号。楼主编程的基础知识还需要好好学习。

[ 本帖最后由 sokoban 于 2011-6-22 13:09 编辑 ]

夜半猫叫 发表于 2011-6-22 13:09:38

额。。。。。。。。。。。

[ 本帖最后由 夜半猫叫 于 2011-6-22 13:14 编辑 ]

duomumu 发表于 2011-6-22 13:12:07

那个括号已经改过了。
主要问题是在哪里?

sokoban 发表于 2011-6-22 13:19:50

我也不是很肯定。但是我觉得你这里这个函数 getKeys() 是永远没有被执行过,这可能是最根本的错误,没有事件去调用它。

你的代码是从那里复制修改来的?你对javascript的基本工作机制有没有基本的了解?

[ 本帖最后由 sokoban 于 2011-6-22 13:21 编辑 ]

duomumu 发表于 2011-6-22 13:23:53

网上看了JavaScript的文档然后自己写的,主要是不明白onkeypress的工作机制,不明白它是如何触发的。

sokoban 发表于 2011-6-22 13:33:29

一般要调用 window.addEventListener("keydown",doKeyDown,0);函数,程序才会对键盘输入有反应。
然后再定义一个doKeyDown()函数。这里doKeyDown 可以都换称其他你想起的名字。

建议你在网上先找一个能运行的例子出发,然后慢慢修改成你想要的样子。
页: [1]
查看完整版本: 帮忙看这个程序错在哪里?