Existe-t-il un moyen pour jQuery de détecter que plusieurs touches ont été enfoncées simultanément?
Existe-t-il une alternative permettant de détecter deux touches en même temps?
Existe-t-il un moyen pour jQuery de détecter que plusieurs touches ont été enfoncées simultanément?
Existe-t-il une alternative permettant de détecter deux touches en même temps?
Pour détecter plusieurs clés maintenues enfoncées, utilisez les événements keydown
et keyup
.
var keys = {};
$(document).keydown(function (e) {
keys[e.which] = true;
});
$(document).keyup(function (e) {
delete keys[e.which];
});
J'ai mis en place une démo ici: http://jsfiddle.net/gFcuU/ . C'est assez amusant, même si j'ai remarqué que mon clavier ne peut détecter que 6 touches au maximum.
Il dépend. "Normales" de touches, ce qui signifie Non- Shift, Ctrl, ALT, (CMD), la réponse est non, le gestionnaire d'événements va attraper/incendie dans une file d'attente, l'un après l'autre.
Pour les touches de modification je l'ai mentionné ci-dessus, il est une propriété de l'objet d'événement.
Exemple:
$(document).bind('keypress', function(event) {
if( event.which === 65 && event.shiftKey ) {
alert('you pressed SHIFT+A');
}
});
Démo: http://www.jsfiddle.net/bM6uY/4/
D'autres propertys sont:
event.ctrlKey
event.altKey
event.metaKey
Vous pouvez utiliser mon plugin pour jQuery pour détecter les raccourcis.
Il cache essentiellement les événements et indique les touches sur lesquelles vous appuyez en ce moment. Si toutes les touches sont enfoncées, la fonction est activée.
https://github.com/maciekpaprocki/bindShortcut
Vous avez une petite explication sur la façon de l’utiliser dans un fichier readme. J'espère que cela t'aides. Commentaires plus qu'appréciés.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.