Как избежать автоповторения событий нажатия клавиши в JavaScript?

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

26
задан agente_secreto 7 October 2011 в 10:46
поделиться