我有这段代码:
else if (e.keyCode == 32){
fired = true;
在 keyDown 函数中(我添加了 document.addEventListener 代码)。现在它工作得很好,并且完全按照我的意愿去做。但这就是问题所在:如果您 按住 该键,它会不断地不断使 fired = true 不断变化,直到它被释放。我只是想让它设置 fired = true;一次,即使键被按住。
原文由 Chris 发布,翻译遵循 CC BY-SA 4.0 许可协议
编辑:现在每个浏览器都完全支持它。除了 Internet Explorer
如果浏览器兼容性不是您主要关心的问题* ,您可以尝试访问
.repeat
的 ---KeyboardEvent
--- 属性,如下所述:https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat
通过在你的处理函数中做这样的事情:
你可以避免重复击键。
*: 在MDN网站上说在Firefox中可以使用,我在Chrome中成功使用过,所以两大浏览器应该没有问题