console.log est imprimé deux fois. J'ai essayé d'utiliser E.StopPropagation (), E.PreventDefault () et .stop (). Ça ne marche pas.
La console.log doit déclencher une seule fois une fois
3 Réponses :
Vous devez probablement abattre l'événement.
Vous pouvez utiliser quelque chose comme 250 Voici le nombre de millisecondes à débattre d'un événement, remarquez également comment l'événement est enveloppé. P> La documentation de toutes les options peut être trouvé ici: https://lodash.com/docs/4.17.11#debounce p> p> lodash code> pour le faire facilement, ou vous pouvez rouler votre propre si vous voulez apprendre comment cela fonctionne. p>
Le code fourni par OP ne tirera pas deux fois, quelque chose d'autre manque.
Le problème ici est que la question ne représente pas de problème reproductible, veuillez ne pas faire des spéculations dans les réponses.
@Teemu Un événement déclenché matériel est en train de tirer deux fois besoin d'un débattement n'est pas une spéculation, c'est un problème courant.
@Durga Son anglais a besoin d'un peu d'aide si vous lisez la question à laquelle il dit que le journal de la console tire deux fois et la dernière ligne qu'il veut dire qu'il souhaite seulement tirer une seule fois.
Ensuite, très probablement, le problème matériel est un doigt lourd sur le clavier, ou un clavier sale ( Event de Keyup n'est pas répété B>), ce sont quelque chose que vous ne pouvez pas créer de manière programmatique. Vous pourriez avoir raison avec la traduction de la dernière phrase, cependant.
J'ai eu un problème similaire un certain temps. J'ai fini par utiliser $. Unbind () code> et $. Bind () code>. Je voudrais d'abord appelerais $. UNBIND () CODE> Pour supprimer toutes les fonctions de rappel à l'événement potentiellement déjà lié à l'événement. Ensuite, j'appellerais $. Bind () code> sur l'événement afin de pouvoir faire ce que je veux faire ce que je veux faire. $('html').unbind('keyup');
$('html').bind('keyup', function (e) {
Détacher de l'événement avec ou p> exécutez le gestionnaire d'événements une seule fois en utilisant }); p> p> OFF () code> fonctionne également un ( ) code> comme p>
" console.log ne sera que déclencher une fois i>" alors comment savez-vous que l'événement est déclenché deux fois? En outre, l'arrêt de la propagation des événements sur l'élément HTML ne fait rien, un événement ne peut pas sortir du document de toute façon.
Pas suffisamment d'informations. Le code posté ne peut pas se comporter comme vous avez décrit.
Pouvez-vous essayer .nbind et ensuite .bind. Il se pourrait que l'événement ait été lié deux fois?