Если пользователь удерживает клавишу, запускается несколько событий нажатия клавиши. По соображениям удобства использования мне нужно использовать 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 () запускается несколько раз. Я бы хотел, чтобы он срабатывал только один раз, даже если пользователь удерживает клавишу нажатой.