2009-11-13 10 views
0
$(document).ready(function() { 
    $(document).keyup(function(e) { 
     alert('This key: ' + e.keyCode); 
    }); 
}); 

Si une clé individuelle est associée à plusieurs caractères, l'événement de touche s'exécutera plusieurs fois pour une pression sur une touche.Comment empêcher les événements de touches/de touches Jquery de renvoyer plusieurs événements lorsqu'une clé est associée à plusieurs caractères?

Est-ce que quelqu'un sait comment identifier l'action physique d'appuyer sur la touche dans ce cas?

Vive

Répondre

1

Utilisation keyup, clés comme ctrl ne déclenche pas un événement. keydown faire cependant. En utilisant les codes ci-dessous, je peux capturer presque toutes les touches physiques enfoncées (je pense).

Script:

$(document).ready(function(){ 
    $(document).keydown(function(e){ 
     $("#key").html($("#key").html() + " " + e.keyCode) 
    }); 
}); 

Html:

<div id="key"></div> 
+0

J'ai essayé keydown, et keypress keyup, mais aucun d'entre eux cature la seule pression de touche réelle dans ce cas. Je fais face à une situation où une chaîne a été mappée à une clé. Dans ce cas, une seule pression de touche génère un événement keydown/keypress/keyup pour chaque caractère de la chaîne. Je veux juste capturer la touche individuelle. – Che

+0

@Che: si vous vous référez à contourner les touches mappées par les utilitaires hotkey ou le système d'exploitation, je suppose qu'il y a peu ou pas de chance de capturer la touche physique réelle. Ces utilitaires interceptent les actions clés à un niveau inférieur à celui d'un navigateur classique pour le script au niveau DOM. –

+0

@ o.k.w Oui c'est exactement ce que je veux dire et je commence à être d'accord avec vous. Je n'ai trouvé aucune information sur la façon dont je pourrais identifier une seule touche. Merci mon pote. – Che