2017-03-04 115 views
0

我发现像一些解决方案:JavaScript:如何获取箭头键绑定?

function checkKey(e) { 

     e = e || window.event; 

     if (e.keyCode == '38') { 
      snakeDirection = "up"; 
     } 
     else if (e.keyCode == '40') { 
      snakeDirection = "down"; 
     } 
     else if (e.keyCode == '37') { 
      snakeDirection = "left"; 
     } 
     else if (e.keyCode == '39') { 
      snakeDirection = "right"; 
     } 
    } 

但我不知道这e也不e = e || window.event; 能有人请解释的含义是什么?

+0

@OusmaneDiaw我基本上没有复制代码..但我没有在我的代码(游戏)中实现它。但是谢谢。 :) –

+0

'document.onkeydown = checkKey' – dandavis

回答

0

功能checkKey被用作事件监听器,几乎可以肯定用于​​事件。尝试运行这一点,你就会明白我的意思:

window.addEventListener('keydown', checkKey) 

事件侦听器在最现代的浏览器需要一个参数,该事件对象,这往往是指定e(简称event)。

但是,在某些旧版浏览器(即传统Internet Explorer版本)中,事件对象未传递给侦听器;相反,人们可以使用全局的window.event属性来访问它。如果您希望自己的代码对这些浏览器具有灵活性,您将不得不预计e可能无法通过。这就是为什么行e = e || window.event存在:它基本上说“如果找不到变量e,将其设置为window.event并继续。”

此事件对象携带的属性可帮助解释发生的事件的具体情况。例如,​​事件对象上的属性keyCode告诉您在键盘上按下了哪个键。然而,这些关键代码的方式编号是不容易记住,因此if语句您正在使用的奇特外观:

  • 左箭头对应的键码37
  • 向上箭头对应的键码38
  • 右箭头对应的键码39
  • 向下箭头对应的键码40