Vinculación de teclas de flecha en JS/jQuery
¿Cómo hago para vincular una función a las teclas de flecha izquierda y derecha en Javascript y/o jQuery? Miré el complemento js-hotkey para jQuery (envuelve la función de enlace incorporada para agregar un argumento para reconocer teclas específicas), pero no parece admitir teclas de flecha.
document.onkeydown = function(e) {
switch(e.which) {
case 37: // left
break;
case 38: // up
break;
case 39: // right
break;
case 40: // down
break;
default: return; // exit this handler for other keys
}
e.preventDefault(); // prevent the default action (scroll / move caret)
};
Si necesita admitir IE8, inicie el cuerpo de la función como e = e || window.event; switch(e.which || e.keyCode) {
.
(edición 2020)
Tenga en cuenta que KeyboardEvent.which
ahora está en desuso. Consulte este ejemplo para obtenerKeyboardEvent.key
una solución más moderna para detectar teclas de flecha.
$(document).keydown(function(e){
if (e.which == 37) {
alert("left pressed");
return false;
}
});
Códigos de caracteres:
37 - izquierda
38 - arriba
39 - derecha
40 - abajo
Puedes utilizar el keyCode de las teclas de flecha (37, 38, 39 y 40 para izquierda, arriba, derecha y abajo):
$('.selector').keydown(function (e) {
var arrow = { left: 37, up: 38, right: 39, down: 40 };
switch (e.which) {
case arrow.left:
//..
break;
case arrow.up:
//..
break;
case arrow.right:
//..
break;
case arrow.down:
//..
break;
}
});
Consulte el ejemplo anterior aquí .