我正在尝试捕捉特定按键事件,其中某些按键对应着播放特定音频片段。我一直在搜索,但是陷入了困境。看起来keydown事件只能在window/document对象中使用。这是正确的吗?我看到有些人谈论jQuery插件,虽然我想避免使用jQuery。原生JS最理想。
我有2个DIV希望同时监听keydown事件。基于按下的按键,该函数播放相应的音频片段。
谢谢!
我正在尝试捕捉特定按键事件,其中某些按键对应着播放特定音频片段。我一直在搜索,但是陷入了困境。看起来keydown事件只能在window/document对象中使用。这是正确的吗?我看到有些人谈论jQuery插件,虽然我想避免使用jQuery。原生JS最理想。
我有2个DIV希望同时监听keydown事件。基于按下的按键,该函数播放相应的音频片段。
谢谢!
给<div>添加一个 tabindex
属性,这样它就可以被聚焦了。在您的情况下,使用 -1 的 tabindex 最好,因为它允许元素获得焦点但无法通过 tab 键访问。
tabindex
全局属性指定其元素是否可以获得焦点,以及是否以及何时参与连续的键盘导航(通常是使用 Tab 键,因此得名)。负值(通常是
tabindex="-1"
)表示该元素应该可以获得焦点,但不应该通过连续的键盘导航可到达。它主要用于使用 JavaScript 创建可访问小部件。
然后您可以将一个 keydown 事件监听器添加到该元素,并检查事件的 keyCode。
document.getElementById("someId").addEventListener("keydown", function(event){
//do something on keydown
if(event.keyCode==13){
//enter key was pressed
}
if (event.keyCode >= 65 && event.keyCode <= 90){
//input was a-z
}
});
<div tabindex="-1"></div>
document.body
或 window
中捕获事件。您可以在此处阅读更多信息 https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture - Andrei Nemes