Duplicate possible:
quel code clé pour la touche d'échappement avec jQuery
Comment détecter la pression des touches d'échappement dans IE, Firefox et Chrome? Le code ci-dessous fonctionne dans IE et les alertes 27
, mais dans Firefox, il alerte0
$('body').keypress(function(e){
alert(e.which);
if(e.which == 27){
// Close my modal window
}
});
javascript
jquery
keyevent
jquery-events
Mithun Sreedharan
la source
la source
keyup
oukeydown
en combinaison avec deskeyCode
œuvres dans tous les navigateurs.$(document).on("keyup", function (e) {var code = e.keyCode || e.which; alert('key pressed: ' + code);});
Salutations du 2014Réponses:
Note:
keyCode
est devient désapprouvée utilisation à lakey
place.Voici jsfiddle
keyCode
devient obsolèteQuel code clé pour la touche d'échappement avec jQuery
la source
$(document).on('keyup.unique_name', ...)
et$(document).unbind('keyup.unique_name')
===
.le
keydown
événement fonctionnera bien pour Escape et a l'avantage de vous permettre d'utiliserkeyCode
dans tous les navigateurs. En outre, vous devez attacher l'auditeurdocument
plutôt que le corps.Mise à jour de mai 2016
keyCode
est maintenant en cours de dépréciation et la plupart des navigateurs modernes proposent lakey
propriété maintenant, bien que vous ayez toujours besoin d'une solution de rechange pour un support décent du navigateur pour le moment (au moment de la rédaction, les versions actuelles de Chrome et Safari ne le prennent pas en charge).La mise à jour de septembre 2018
evt.key
est désormais prise en charge par tous les navigateurs modernes.la source
<input>
élément et il ne sera donc déclenché que lorsque cet élément aura le focus.if (evt.key === 'Escape') {
au lieu d'utiliser la version obsolètekeyCode
.key
, voir caniuse.com/#feat=keyboardevent-keyEn utilisant JavaScript, vous pouvez vérifier le fonctionnement de jsfiddle
En utilisant jQuery, vous pouvez vérifier le fonctionnement de jsfiddle
la source
vérifier
keyCode
&&which
&keyup
||keydown
la source
Le meilleur moyen est de faire fonctionner cela
UNE FONCTION:
EXEMPLE:
la source
keypress
cela ne se déclenche pas sur la touche d'échappement. Du moins, pas dans Chrome sur Mac.keydown
résoudre le problème.Ci-dessous se trouve le code qui non seulement désactive la touche ESC mais vérifie également la condition dans laquelle elle est enfoncée et selon la situation, il fera ou non l'action.
Dans cet exemple,
désactivera l'action de la touche ESC.
Vous pouvez faire quelque chose comme pour cacher une div avec ceci:
Lorsque la touche ESC est également prise en compte:
Vous pouvez supprimer cette partie condition si vous souhaitez l'appliquer à tous. Ou vous pouvez cibler INPUT ici pour appliquer cette action uniquement lorsque le curseur est dans la zone de saisie.
la source
je pense que le moyen le plus simple est la vanille javascript:
la source
Escape
asevent.key
et not 27event.keyCode
de 27 ans.