如果用户按住该键,则会触发多个 keydown 事件。出于可用性原因,我需要使用 keydown,而不是 keyup,但我想避免这种情况。我的相关代码如下:
$(document).keydown(function(e) {
var key = 0;
if (e == null) { key = event.keyCode;}
else { key = e.which;}
switch(key) {
case config.keys.left:
goLeft();
break;
case config.keys.up:
goUp();
break;
case config.keys.right:
goRight();
break;
case config.keys.down:
goDown();
break;
case config.keys.action:
select();
break;
}
});
因此,例如,当用户按住向下键时,会多次触发 goDown() 。即使用户按住键,我也希望它只触发一次。
原文由 agente_secreto 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
event.repeat
检测事件是否重复。然后,您可以在允许处理程序第二次执行之前等待“keyup”。