10
votes

Lier plusieurs clés à l'événement KeyPress

J'utilise actuellement ce code JavaScript KepyPress pour tirer des événements sur KeyPress:

$(document).keydown(function(e) {
    switch(e.keyCode) { 
        case 39 && 37:
            e.preventDefault();
            alert("Arrow Key");
        break;
    }
});


1 commentaires

Voulez-vous dire les appuyer sur eux en même temps? Ensuite, vous pouvez regarder Stackoverflow.com/questions/1652210/... .


3 Réponses :


3
votes

Pourquoi ne pas utiliser si code> plutôt que commutateur code>?

$(document).keydown(function(e) {
    if ((e.keyCode === 37) || (e.keyCode === 39)) {
        e.preventDefault();
        alert("Arrow Key");
    }
});


3 commentaires

Oui, cela fera, je ne sais pas pourquoi j'ai préféré utiliser un commutateur, mais je suppose que cela n'a pas d'importance. Merci encore pour votre aide. Très appréciée.


Je sais que cela n'a rien à voir avec ce post, mais si vous le voyez, vous pouvez peut-être m'aider avec le plugin JQuery Lazyload si vous obtenez une minute?


Juste curiosité, mais comment cela peut-il être votre réponse acceptée avec le moment que vous indiquez "Je cherche quelque chose qui fonctionnerait pour une combinaison de clés pressées. Des idées?" Dans un autre commentaire?



3
votes

Vous pouvez utiliser l'affaire FALLTHRough: xxx

Notez que j'utilise E.Quel au lieu de e.keCode à Faites fonctionner dans tous les navigateurs (JQuery attribue automatiquement la propriété qui contient réellement le code de clé à E.Qui).


4 commentaires

N ° pour un Keydown événement, KeyCode est la propriété correcte de tous les navigateurs. Peut-être que vous envisagez de KeyPress Événements?


Je suis sur le point de tester cela, mais juste pour être sûr, cela va tirer sur la pression des deux clés, une combinaison, non?


Non, ce code n'est pas pour la combinaison , ceci est pour l'un d'entre eux est appuyé sur .


Je cherche quelque chose qui fonctionnerait pour une combinaison de clés pressées. Des idées?



26
votes

Si vous souhaitez vérifier plusieurs touches à une fois, vous ne devez utiliser qu'une clé régulière et une ou plusieurs touches de modification (ALT / SHIFT / CTRL), car vous ne pouvez pas être assuré que deux touches ordinaires peuvent en réalité être appuyées à la fois sur l'utilisateur. Clavier (en fait, ils peuvent toujours être enfoncés, mais le PC peut ne pas le comprendre pour la manière dont les claviers sont câblés).

Vous pouvez utiliser les champs E.AltKey, E.ctrlkey, E.Shifty pour vérifier si le modificateur correspondant La touche a été enfoncée.

exemple: xxx


2 commentaires

Merci, j'apprécie vraiment l'aide. Ouais c'est en fait plus de ce que je cherchais. Merci encore.


Parfait, parfait, parfait - exact ce que je cherchais ce matin !!