Possível duplicado:
qual código de chave para a chave de escape com jQuery
Como detectar a pressão da tecla Escape no IE, Firefox e Chrome? O código abaixo funciona no IE e nos alertas 27
, mas no Firefox alerta0
$('body').keypress(function(e){
alert(e.which);
if(e.which == 27){
// Close my modal window
}
});
javascript
jquery
keyevent
jquery-events
Mithun Sreedharan
fonte
fonte
keyup
oukeydown
em combinação comkeyCode
obras em todos os navegadores.$(document).on("keyup", function (e) {var code = e.keyCode || e.which; alert('key pressed: ' + code);});
Saudações do 2014Respostas:
Nota:
keyCode
está ficando com uso obsoletokey
.Aqui está o jsfiddle
keyCode
está ficando obsoletoQual código de chave da chave de escape com o jQuery
fonte
$(document).on('keyup.unique_name', ...)
e$(document).unbind('keyup.unique_name')
===
.O
keydown
evento funcionará bem para o Escape e tem o benefício de permitir que você usekeyCode
em todos os navegadores. Além disso, você precisa anexar o ouvinte aodocument
invés do corpo.Atualização maio de 2016
keyCode
agora está sendo preterido e os navegadores mais modernos oferecem akey
propriedade agora, embora você ainda precise de um suporte decente para o navegador (por enquanto, as versões atuais do Chrome e Safari não são compatíveis).A atualização de setembro de 2018
evt.key
agora é suportada por todos os navegadores modernos.fonte
<input>
elemento e, portanto, ele será acionado apenas quando esse elemento estiver focado.if (evt.key === 'Escape') {
em vez de usar a obsoletakeyCode
.key
, consulte caniuse.com/#feat=keyboardevent-keyUsando JavaScript, você pode verificar o funcionamento do jsfiddle
Usando o jQuery, você pode verificar o funcionamento do jsfiddle
fonte
verifique
keyCode
&&which
&keyup
||keydown
fonte
A melhor maneira é fazer funcionar para isso
FUNÇÃO:
EXEMPLO:
fonte
keypress
não dispara na tecla de escape. Pelo menos, não no Chrome em um Mac.keydown
corrigir o problema.Abaixo está o código que não apenas desabilita a tecla ESC, mas também verifica a condição em que é pressionada e, dependendo da situação, fará a ação ou não.
Neste exemplo,
desativará a ação de pressionar a tecla ESC.
Você pode fazer algo como ocultar uma div com isso:
Onde a tecla ESC pressionada também é levada em consideração:
Você pode remover essa parte da condição se quiser aplicar a todos. Ou você pode direcionar INPUT aqui para aplicar esta ação apenas quando o cursor estiver na caixa de entrada.
fonte
Eu acho que a maneira mais simples é o javascript de baunilha:
fonte
Escape
comoevent.key
e não 27event.keyCode
27.