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