Jquery Exécuter le code 2 secondes après la dernière pression sur la touche
Je suis en train de travailler sur une fonction de recherche auto pour un site.
Il utilise de l'ajax pour la requête d'un api.
Pour le moment, après 3 caractères, il sera à la recherche sur chaque touche.
Ce que je veux, c'est
Décision1:
Utilisateur entre tes
2 secondes
recherche effectuée
Case2:
Utilisateur entre tes
1 seconde passe
utilisateur appuie sur t
2 secondes passent
la recherche est effectuée sur test
Case3:
Utilisateur entre tes
1 seconde passe
utilisateur appuie sur t
1.5 secondes passent
utilisateur appuie sur je
1.5 secondes passent
utilisateur appuie sur n
1.5 secondes passent
utilisateur appuie sur g
2 secondes passent
recherche effectuées sur le test
donc, comme vous pouvez le voir,
l'action de recherche n'est effectuée que lorsqu'il n'y a pas de touches(ou de la colle ect) dans les deux secondes qui suivent une pression sur une touche.
mon idée de base est de.
sur keydown
Appeler une fonction qui définit un délai d'attente,
de plus, la fonction définit une variable contenant la dernière entrée dans la zone de texte.
lorsque le délai expire, il vérifie la valeur dans la boîte pour voir si elle correspond à la valeur dans la variable.
Si elles correspondent alors il n'y a pas eu de changement.
Afin de faire de la recherche
Si ils ne puis ne rien faire, parce que le délai d'expiration de la clé suivante de la presse sera la suite à faire la même vérification.
Est-ce le seul ou le meilleur moyen pour ce faire?
source d'informationauteur Hailwood | 2010-12-06
Vous devez vous connecter pour publier un commentaire.
La fonction suivante à partir Remy Sharp fera l'affaire:
Dans le code précédent,
f
est la fonction que vous souhaitez gaz etdelay
est le nombre de millisecondes à attendre après le dernier appel (valeur par défaut: 500 si omis).throttle
renvoie une fonction wrapper qui efface tout existant, délais d'expiration de la précédente appels et définit ensuite un délai d'attente pourdelay
millisecondes dans l'avenir pour appelerf
. Une référence à laarguments
de retour de la fonction est utilisée pour appelerf
avec, en veillant àf
reçoit les arguments qu'il attend.Vous devez l'utiliser comme suit:
Presque le même sauf que la minuterie est réglée uniquement lorsque les conditions sont remplies: