La fonction d'exécution après que l'utilisateur a cessé de taper
J'ai un champ de saisie dans laquelle l'utilisateur peut saisir une valeur de type long. Cette valeur est ensuite utilisée comme valeur d'entrée dans un complexe de temps de la fonction.
Ma question est: comment puis-je commencer l'exécution de cette fonction environ 1 seconde après que l'utilisateur a terminé sa frappe? (Je ne veux pas l'exécuter après chaque pression sur la touche car il est vraiment le ralentissement de la page). Donc, si sa frappe suivante est dans le 1s limite à partir de la dernière course de touche, que d'attendre qu'une seconde.
Avez-vous des suggestions?
autre remarque: j'ai aussi besoin de passer des paramètres dans cette fonction
- voulez-vous exécuter une fois qu'il est complètement fini de taper? comme si il se concentre hors de la zone de texte? ou effectivement, entre les frappes?
- Je sais comment l'exécuter une fois que l'entrée a perdu le focus, mais ce n'est pas ce que je veux faire. L'utilisateur ne devrait pas être obligé de quitter l'entrée une fois, il veut voir le résultat. Donc, il devrait être affiché si il n'est pas écrit pendant 1 seconde et non pas sur l'objet perdu.
Vous devez vous connecter pour publier un commentaire.
Voici une ébauche : http://jsfiddle.net/jomanlk/msmJp/
Utilise
setTimeout
etclearTimeout
JS:
HTML:
C'est vraiment la fin, je sais, mais j'ai vraiment détesté les lignes de code nécessaires pour atteindre ce à chaque fois qu'il a été nécessaire, donc j'ai extrait la logique dans une page de l'initiation de la fonction qui ne fonctionne qu'une fois.
L'ajout de cette (pensez-y comme un polyfill), permet beaucoup plus simple d'utilisation. Tout ce que vous devez faire pour cible l'utilisateur d'arrêt de frappe, c'est d'ajouter un écouteur d'événement pour votre élément de ciblage "keystopped'.
J'ai pris
keystopped
, car il correspondkeydown
,keyup
, etc.input
au lieu dekeydown
, de sorte qu'il fonctionne avec copie&coller ou glisser un texte.Utiliser le bindWithDelay plugin jQuery:
J'ai posté une solution quand il ll afficher le nom d'utilisateur est en train de taper et de l'utilisateur arrêté type
JS:
HTML: