¿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 (ajusta la función de enlace incorporada para agregar un argumento para reconocer teclas específicas), pero no parece admitir teclas de flecha.
javascript
jquery
keyboard
key-bindings
Alex S
fuente
fuente
Respuestas:
Si necesita admitir IE8, inicie el cuerpo de la función como
e = e || window.event; switch(e.which || e.keyCode) {
.(editar 2020)
Tenga en cuenta que
KeyboardEvent.which
ahora está en desuso. Vea este ejemplo utilizandoKeyboardEvent.key
una solución más moderna para detectar teclas de flecha.fuente
e.which
como los recomendados por jQuery para el navegador cruzado, los usos ene.preventDefault()
lugar dereturn false
(return false
en un controlador de eventos jQuery desencadena ambose.preventDefault()
ye.stopPropagation()
, el segundo de los cuales hará que los eventos agregados posteriores fallen, ya que el evento no se propagará a ellos), y en el Al final del cambio, volverá sin llamare.preventDefault()
si se trata de una clave diferente a la que se está buscando para no obstaculizar el uso de otra clave, y en lugar de$.ui.keyCode.DOWN
eso se compara con los números (MUCHO más rápido).$.ui.keyCode.DOWN
usted busque$
en su ámbito léxico, no lo encuentre, suba un nivel ... busque$
, repita hasta que esté en el ámbito global, encuéntrelo en el globalwindow
, acceda$
en la ventana, accedaui
enwindow.$
, accedakeyCode
enwindow.$.ui
, accesoDOWN
enwindow.$.ui.keyCode
llegar al valor primitivo desea comparar, a continuación, hacer su real comparando. Independientemente de si esa velocidad es importante para usted o no, es una decisión personal, tengo la tendencia de evitar 4 niveles de acceso cuando hay una situación en la que puedo escribir / comentar la primitiva con la misma facilidad.Códigos de caracteres:
fuente
e.which
lugar dee.keyCode
más soporte para el navegador. Vea mi comentario a continuación.Puede usar el KeyCode de las teclas de flecha (37, 38, 39 y 40 para izquierda, arriba, derecha y abajo):
Consulte el ejemplo anterior aquí .
fuente
The event.which property normalizes event.keyCode and event.charCode
- api.jquery.com/event.whichEsto es un poco tarde, pero HotKeys tiene un error muy importante que hace que los eventos se ejecuten varias veces si adjunta más de una tecla de acceso rápido a un elemento. Simplemente use jQuery simple.
fuente
Simplemente he combinado las mejores partes de las otras respuestas:
fuente
Puedes usar KeyboardJS. Escribí la biblioteca para tareas como esta.
Verifique la biblioteca aquí => http://robertwhurst.github.com/KeyboardJS/
fuente
Una solución concisa que utiliza Javascript simple (gracias a Sygmoral por las mejoras sugeridas):
Consulte también https://stackoverflow.com/a/17929007/1397061 .
fuente
document.addEventListener('keydown', myFunction);
¿Estás seguro de que jQuery.HotKeys no admite las teclas de flecha? He jugado con su demo antes y he observado que funcionaba a la izquierda, derecha, arriba y abajo cuando lo probé en IE7, Firefox 3.5.2 y Google Chrome 2.0.172 ...
EDITAR : Parece que jquery.hotkeys se ha reubicado en Github: https://github.com/jeresig/jquery.hotkeys
fuente
En lugar de usar
return false;
como en los ejemplos anteriores, puede usar ele.preventDefault();
que hace lo mismo pero es más fácil de entender y leer.fuente
return false;
ye.preventDefault();
no son exactamente lo mismo Ver stackoverflow.com/a/1357151/607874Ejemplo de js puro con ir a la derecha o izquierda
fuente
Puede usar jQuery bind:
fuente
Puede verificar si
arrow key
se presiona:fuente
prevenir flecha solo disponible para cualquier otro objeto SELECT, bueno, en realidad no he probado en otro objeto LOL. pero puede detener el evento de flecha en la página y el tipo de entrada.
Ya trato de bloquear la flecha hacia la izquierda y hacia la derecha para cambiar el valor del objeto SELECT usando "e.preventDefault ()" o "return false" en el evento "keypress" y "keyup" pero aún cambia el valor del objeto. pero el evento aún te dice que se presionó la flecha.
fuente
Una robusta biblioteca Javascript para capturar la entrada del teclado y las combinaciones de teclas ingresadas. No tiene dependencias.
http://jaywcjlove.github.io/hotkeys/
fuente
Vine aquí buscando una manera simple de permitir que el usuario, cuando se enfoca en una entrada, use las teclas de flecha para +1 o -1 una entrada numérica. Nunca encontré una buena respuesta, pero hice el siguiente código que parece funcionar muy bien, haciendo que todo este sitio ahora.
fuente
Con café y jquery
fuente