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 pausecode>.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