首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查看一个keydown事件中被按下的键数

问如何查看一个keydown事件中被按下的键数
EN

Stack Overflow用户
提问于 2020-11-06 04:13:12
回答 1查看 106关注 0票数 3

我正在尝试在浏览器上实现键盘快捷键。当事件侦听器被触发时,我希望确保只按下某个组合键,而不按下其他键。

例如,如果我想将键"A“注册为快捷方式,代码可能如下所示。

代码语言:javascript
复制
document.addEventListener("keydown", (event) => {
    if (event.key.toLowerCase() === "a" && numberOfKeysCurrentlyBeingPressed === 1) {
        // Do something
    }
});

这将触发A,而不是像Ctrl + A或A + B这样的东西。

我考虑过使用keydown和keyup事件侦听器来计数和跟踪按下的键数,但某些系统上的某些键只触发一个事件侦听器(keydown或keyup),而不触发另一个。此外,这种方法存在一些不一致之处,并不是一个可行的解决方案。

我正在寻找一种方法,当键盘事件侦听器被触发时,准确地知道有多少键被按下,这样我就可以将这个数字与键盘快捷键组合中涉及的键的数量进行比较。

EN

回答 1

Stack Overflow用户

发布于 2020-11-06 04:38:23

代码语言:javascript
复制
var keyPresses = 0;

window.addEventListener('keyup', (e) => {
  keyPresses--
})

window.addEventListener('keydown', (e) => {
  if (!e.repeat) {
    keyPresses++
  }
  if (e.key.toLowerCase() === 'a' && keyPresses === 1) {
    //do something
  }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64704647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档