Javascript的几个键盘事件

标签 javascript jquery keyboard keyboard-events

我目前正在构建一个音乐播放器,带有三个按钮(实际上是简单的 div),用于播放/暂停 (id="play")、上一个 (id=rew) 和下一个 (id="fwd")。

我希望在按空格键时“单击”播放/暂停。 我希望按向左箭头时“单击”上一个。 我希望在按向右箭头时“单击”下一步。

我已经成功管理了 Play 的空格键控制:

var play = document.getElementById("play");

document.onkeydown = function (e) {
    if (e.keyCode == 32) {
        play.click();
    }
}; 

但是,当我在脚本中为其他两个按钮添加相同的按钮时,“Play”的空格键控件以及其他两个按钮不再起作用。

所以,我的脚本中当前的内容显然不起作用:

<script>
var play = document.getElementById("play");

document.onkeydown = function (e) {
    if (e.keyCode == 32) {
        play.click();
    }
}; 


var rew = document.getElementById("rew");

document.onkeydown = function (e) {
    if (e.keyCode == 37) {
        rew.click();
    }
}; 

var fwd = document.getElementById("fwd");

document.onkeydown = function (e) {
    if (e.keyCode == 39) {
        fwd.click();
    }
}; 
</script>

我做错了什么?

最佳答案

您的每个按键事件都会覆盖前一个事件。

相反,将所有逻辑放入一个 keydown 事件中,如下所示:

var play = document.getElementById("play");
var rew = document.getElementById("rew");
var fwd = document.getElementById("fwd");

document.onkeydown = function(e) {
  if (e.keyCode == 32) {
    play.click();
  } else if (e.keyCode == 37) {
    rew.click();
  } else if (e.keyCode == 39) {
    fwd.click();
  }
};

关于Javascript的几个键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42330487/

相关文章:

javascript - 冒泡 componentWillUpdate 和 componentDidUpdate

javascript - Moment JS - 如何从另一个时区获取时间

javascript - 将页面缩放到屏幕大小

javascript/jquery 无法在部分 View 中工作。

javascript - 删除 HTML 表格并将其粘贴到网页的另一部分,这可以使用 JQuery 吗?

WPF:工具栏是一个键盘陷阱

javascript - 更好地从 Node 或每个请求的连接到 memcached/mongo 的单一全局连接?

javascript - 是否可以在没有提交按钮的情况下验证表单?

python - 为什么 pygame 键码是特定于操作系统的?

linux - XKB : Switch Overlay vs HotKeys