Ceci est probablement un comportement prévu ou au moins, pas une question de JQuery / JS, mais j'aimerais des éclaircissements s'il y a eu un.
Prenez les éléments suivants: P>
$(document).bind('keypress', function(e){ switch(e.keyCode) { case 37: console.log('left cursor keydown, will fire on hold'); break; case 39: console.log('right cursor keydown, will fire on hold'); break; case 80: console.log('p will only fire once per press!'); break; } });
3 Réponses :
Le comportement varie entre les navigateurs et les systèmes d'exploitation. La page suivante couvre le sujet des événements clés répétés automatiquement en détail à la section 2.2: p>
Aussi - au profit de toutes les personnes qui affichent ce message: essayez la méthode "Clé" P>
KeyPress sera tiré plusieurs fois ... Clé à jour ne sera pas p>
http://jquerymobile.com/demos /1.0a2/experiments/APIViewer/docs/keyPress/index.html P>
Keydown code> Répétez réellement (dans le dernier Google Chrome au moins). Essayez ici:
$ (document) .on ('Keydown', fonction (ev) {console.log (ev)}) code>
Ce problème existe depuis des âges, mais je pense avoir découvert une solution juste maintenant.
Cela semble fonctionner correctement
Toutes les clés répètent. Vous devez ajouter
break code> à la fin de chaque boîtier de commutation, sauf si vous les avez laissées de côté intentionnellement. Soit votre clavier est mal fonctionnant, soit votre code nécessite simplement une pause
code>.
Pas pour moi - "P" se répète bien. Je pense que c'est une fonction du matériel / du micrologiciel de votre clavier.
@Briangraham vient de repérer ça, merci :) Après avoir testé à nouveau sur Jsfiddle, je vois une répétition sur toutes les clés aussi - Cependant, le KeyCodeT attr est 0 sur la plupart des clés de l'événement KeyPress, qui expliquerait une partie du comportement étrange que j'étais voyant