【发布时间】:2021-08-19 13:14:39
【问题描述】:
情况:我有一个 keydown 处理程序和一个 switch 用于按下什么键,这是相当标准的东西,但是当任何键被按住时,keydown 事件会重复触发(而不是而不是在实际按下键时仅一次)。
为什么会出现问题:我想保持keydown 侦听器处于活动状态,即能够检测一次按下多个键,但每个@987654325 只能触发一次事件@。我会想根据上下之间的时间在keyup 上为keyCode 做一些事情,但是由于多次触发,时间被搞砸了。
我尝试过的事情:我目前保留了一个已关闭的keyCodes 列表,并在我的keydown 处理程序中检查这些列表,以防止发生默认行为,如果@ 987654330@ 在我的列表中。但是,该事件仍然经常触发,我担心此解决方案的效率/优雅性。
实际问题:有没有一种好方法可以将keydown 事件的触发限制为仅在按键被物理按下时触发,或者只监听具体的keyCodes?
【问题讨论】:
-
“即能够检测到同时按下多个键”是什么意思?
-
例如,按住“y”键,然后同时按住“o”键。这里排除了去掉keydown事件,keyup后重新添加的方案。
标签: javascript jquery