Detectar pulsaciones de teclas de flecha en JavaScript

Resuelto mihsathe asked hace 13 años • 22 respuestas

¿Cómo puedo detectar cuando se presiona una de las teclas de flecha? Usé esto para descubrir:

function checkKey(e) {
    var event = window.event ? window.event : e;
    console.log(event.keyCode)
}

Aunque funcionó para cualquier otra tecla, no funcionó para las teclas de flecha (tal vez porque se supone que el navegador se desplaza sobre estas teclas de forma predeterminada).

mihsathe avatar Apr 08 '11 22:04 mihsathe
Aceptado

Las teclas de flecha solo se activan con onkeydown, no con onkeypress.

Los códigos clave son:

  • izquierda = 37
  • arriba = 38
  • derecha = 39
  • abajo = 40
 avatar Apr 08 '2011 15:04

Función de llamada hacia arriba y hacia abajo con tecla. Hay códigos diferentes para cada llave.

document.onkeydown = checkKey;

function checkKey(e) {

    e = e || window.event;

    if (e.keyCode == '38') {
        // up arrow
    }
    else if (e.keyCode == '40') {
        // down arrow
    }
    else if (e.keyCode == '37') {
       // left arrow
    }
    else if (e.keyCode == '39') {
       // right arrow
    }

}
ketan avatar Feb 16 '2012 11:02 ketan