【问题标题】:How to detect arrow key-presses in JavaScript? [duplicate]如何检测 JavaScript 中的箭头按键? [复制]
【发布时间】:2015-07-14 17:24:02
【问题描述】:

我正在用 JavaScript 制作赛车游戏。汽车由箭头键控制。我以前用 JavaScript 制作过很多游戏,而且效果很好。
我使用的代码是:

function detectKey(e) {
    var event = window.event ? window.event : e;
    if (true) {
        alert(event.keyCode)
    }
}

现在我第一次将此代码用于箭头键。每当我按下箭头键时,页面就会上下移动。我不明白这个问题。有人可以帮忙吗?

【问题讨论】:

  • 使用简单的keycode google一下
  • 左箭头 (37)、上箭头 (38)、右箭头 (39)、下箭头 (40) 的键码..
  • 这是我第五次观察到这个用户这样做了。

标签: javascript jquery keypress keyboard-events arrow-keys


【解决方案1】:

这是所有键码的列表http://mikemurko.com/general/jquery-keycode-cheatsheet/
- 输入:13 - 最多:38 - 下降:40 - 右:39 - 左:37

    $(document).keyup(function(e) {
        if (e.which === 38) {
          //up was pressed
        }
    });

【讨论】:

    【解决方案2】:

    使用 keyCode 如下:

    $(document).on('keypress','your-element',function(e){
        if(e.keyCode == 37 || e.keyCode == 38 || e.keyCode == 39 || e.keyCode == 40)
        console.log("Arrow key pressed");
    })
    

    【讨论】:

      【解决方案3】:

      在纯 JavaScript 中

      document.onkeydown = function myFunction() {
      switch (event.keyCode) {
      case 38:
          console.log("Up key is pressed");
          break;
      case 40:
          console.log("Down key is pressed");
          break;
      case 37:
          console.log("Right key is pressed");
          break;
      case 39:
          console.log("left key is pressed");
          break;
      }
      

      }

      【讨论】:

      • 您提供的密钥代码不正确
      • 上:38 下:40 右:39 左:37
      • onkeypress 无法检测到方向键!改用 keydown。
      猜你喜欢
      • 2011-08-01
      • 2012-12-09
      • 2016-11-11
      • 2014-09-03
      • 1970-01-01
      • 2013-02-04
      • 2011-05-30
      • 2012-10-21
      相关资源
      最近更新 更多