Posible duplicado:
qué código clave para la tecla de escape con jQuery
¿Cómo detectar la pulsación de la tecla de escape en IE, Firefox y Chrome? El siguiente código funciona en IE y alertas 27
, pero en Firefox alerta0
$('body').keypress(function(e){
alert(e.which);
if(e.which == 27){
// Close my modal window
}
});
javascript
jquery
keyevent
jquery-events
Mithun Sreedharan
fuente
fuente
keyup
okeydown
en combinación conkeyCode
trabajos en todos los navegadores.$(document).on("keyup", function (e) {var code = e.keyCode || e.which; alert('key pressed: ' + code);});
Saludos desde el 2014Respuestas:
Nota:
keyCode
está recibiendo un uso obsoleto en sukey
lugar.Aquí está jsfiddle
keyCode
se está despreciandoQué código clave para la tecla de escape con jQuery
fuente
$(document).on('keyup.unique_name', ...)
y$(document).unbind('keyup.unique_name')
===
.El
keydown
evento funcionará bien para Escape y tiene la ventaja de permitirle usarlokeyCode
en todos los navegadores. Además, debe adjuntar al oyente endocument
lugar del cuerpo.Actualización de mayo de 2016
keyCode
ahora está en proceso de desaprobación y la mayoría de los navegadores modernos ofrecen lakey
propiedad ahora, aunque todavía necesitará un respaldo para un soporte decente del navegador por el momento (al momento de escribir las versiones actuales de Chrome y Safari no lo admiten).La actualización de septiembre de 2018
evt.key
ahora es compatible con todos los navegadores modernos.fuente
<input>
elemento y, por lo tanto, solo se activará cuando este elemento tenga el foco.if (evt.key === 'Escape') {
lugar de usar el obsoletokeyCode
.key
, visita caniuse.com/#feat=keyboardevent-keyUsando JavaScript puedes verificar el funcionamiento de jsfiddle
Usando jQuery puedes verificar el funcionamiento de jsfiddle
fuente
verifique
keyCode
&&which
&keyup
||keydown
fuente
La mejor manera es hacer que esto funcione
FUNCIÓN:
EJEMPLO:
fuente
keypress
no se dispara en la tecla de escape. Al menos, no en Chrome en una Mac.keydown
arreglar el problema.A continuación se muestra el código que no solo deshabilita la tecla ESC, sino que también verifica la condición donde se presiona y, dependiendo de la situación, realizará la acción o no.
En este ejemplo,
desactivará la acción de presionar la tecla ESC.
Puede hacer algo como ocultar un div con esto:
Cuando se presiona la tecla ESC también se tiene en cuenta:
Puede eliminar esto si parte de la condición si desea aplicar esto a todos. O puede seleccionar INPUT aquí para aplicar solo esta acción cuando el cursor está en el cuadro de entrada.
fuente
Creo que la forma más sencilla es JavaScript vainilla:
fuente
Escape
comoevent.key
y no 27event.keyCode
27.