jquery événement keypress de cuisson un peu de temps
Salut j'ai une installation de saisie semi-automatique de texte de saisie.
Je suis en train de déclencher l'événement de la réimpression de la table sur un clic de btn et sur une entrée de pression de touche. le btn cliquez sur fonctionne très bien et
mais la touche entrée appuyez sur semble comme il tire quelques fois avant de s'arrêter (ce qui signifie la table clignote)
$('body').bind('keypress', function(e) {
if(e.keyCode==13){
var str = $('#Filter').val();
$('#Table').fadeOut("slow").load('printShorts.server.php?Sortby=<?echo $sort;?>&dir=<?echo $direction;?>&filter='+encodeURIComponent(str)+'&usergroup=<?=$usergroup?>&no-cache=' + (new Date()).getTime() ).fadeIn("slow");
}
});
ça n'arrive pas tout le temps et les actes differntly dans divers navigateurs..
OriginalL'auteur devmonster | 2012-06-13
Vous devez vous connecter pour publier un commentaire.
L'événement keydown en combinaison avec une zone de texte html ne sera pas suffisant pour l'empêcher d'être déclenché plusieurs fois. Vous pouvez voir ce comportement dans l'action sur le jquery demo section de l'événement keydown: http://api.jquery.com/keydown/
Une solution possible est d'utiliser le gestionnaire d'événements "on" (voir http://api.jquery.com/one/). Qui assure la manifestation doit être traitée qu'une seule fois:
je vois ce que tu as fait là
Ahhhh...Les As! Cela avait été la conduite de moi dingue!
OriginalL'auteur Beriz
C'est le comportement correct de l'événement keypress. L'événement keypress continue tant que la touche est enfoncée (comme si vous continuez à certains char touche enfoncée lorsque dans un textarea, le char est ajouté que de nombreuses fois, ce qui a trait à la pression de touche). Pour la poignée-une fois les conditions, utilisez la touche ou touche-jusqu'à l'événement en fonction de vos besoins. À la fois la clé et la clé sont tiré une seule fois. Il va comme:
OriginalL'auteur techfoobar
http://api.jquery.com/keypress/
Utilisation keydown à la place.
OriginalL'auteur psych
Essayez de changer la "touche" à "keydown'.
De http://api.jquery.com/keypress/
OriginalL'auteur joshschreuder
La documentation pour keypress états:
Ainsi, vous pouvez détacher le gestionnaire par l'ajout d' .off() avant de votre liaison. Je souhaite également remplacer la .bind() de la fonction .() depuis bind est maintenant obsolète. Quelque chose comme ceci devrait fonctionner:
OriginalL'auteur Chris