Cómo deshabilitar keydown repetitivo en jQuery [duplicar]

Esta pregunta ya tiene una respuesta aquí:

Prevenir que el evento de keydown de JavaScript se maneje varias veces mientras se mantiene presionado 7 respuestas

Cuando el usuario mantiene presionada una tecla, quiero que el evento keydown () se llame solo una vez, pero se llama hasta que el usuario deja de presionar la tecla.

Esto es lo que estoy tratando de hacer:

   $(document).keydown(function(event){
     var keycode = (event.keyCode ? event.keyCode : event.which);
     if(keycode == '39'){
              $("#box").animate({"left": "+=30px"}, "fast");
     } 
   });  

Entonces, cuando el usuario presiona la tecla de flecha hacia la derecha, quiero que el cuadro div # se mueva 30 píxeles a la derecha. Se mueve, pero si el usuario mantiene presionada la tecla, se va volando.

Necesito que se mueva solo 30 px por pulsación y que pare, incluso si el usuario mantiene presionada la tecla. ¿Sabes cómo se puede lograr?