removeEventListener ne fonctionne pas
Je ne sais pas ce que je fais de mal, mais voici un exemple de ce que je fais et il ne semble pas fonctionner.
someDom.addEventListener('mousemove',function(ev) {self.onInputMove(ev)},false);
someDom.removeEventListener('mousemove',self.onInputMove);
La removeEventListener code est exécuté, mais il n'a tout simplement pas supprimer le 'mousemove' auditeur
OriginalL'auteur fogy | 2011-04-28
Vous devez vous connecter pour publier un commentaire.
removeEventListener
supprime l'écouteur exactement correspond à la fonction qui a été ajoutée.Dans ce cas, la fonction qui
addEventListener
ajoutée:Stocker une référence à la fonction elle-même et vous serez bon. Ainsi, par exemple, la suivante devrait fonctionner:
someDom.removeEventListener('mousemove', self.onInputMove, false);
mise à jour pour résoudre ce problème; merci!
Je sais que je suis plusieurs années de retard, mais le troisième argument n'est pas réellement obligatoire? Je pense que c'est censé être facultatif, et il devrait être par défaut à false.
Il était une fois, mais il n'est plus obligatoire. Je vais le laisser là juste pour plus de clarté, mais bon point.
veuillez expliquer sur le troisième paramètre dans
removeEventListener
? et j'ai besoin d'utilisertrue
comme troisième paramètre dansaddEventListener
afin que je puisse prévenir par défaut clics de souris... (lien d'ouverture), donc je ne peux pas définirfalse
de cette méthode..OriginalL'auteur Sean Vieira
onInputMove
n'est pas un événement de la méthode de rappel. Si vous avez besoin de faire quelque chose comme:someDom.removeEventListener('mousemove', event, false);
Yup, mis à jour également. Merci.
event
n'est pas un bon nom pour votre gestionnaire de la fonction de référenceOriginalL'auteur cem
Pourquoi le faire vous-même si difficile, il suffit d'utiliser la suite de lier un événement à un élément:
Maintenant, lorsque vous voulez retirer de l'événement, il suffit de faire ceci:
Fait!
Espère que cela vous aide à vous les gars!
pas si vous utilisez des écouteurs d'événement.
Parce qu'elle utilise l'ancien gestionnaires d'événements comme les propriétés de paradigme, plutôt que le DOM de Niveau 2 de la norme. Et, parce que cette technique ne permet pas de plusieurs gestionnaires à un événement unique.
Aussi, il ne vous permet pas de spécifier la capture ou la bulle, ou d'autres options.
OriginalL'auteur Steffen Brem
Cette page vient d'abord sur la recherche de ce/cette question sur Google. Donc, en dehors des réponses déjà mentionné, est l'une des plus intéressant pour l'avenir:
En laissant de côté la troisième variable en option dans la méthode addEventListener() pour useCapture/useBubble (comme il l'est par défaut à false) n'est pas sans créer quelques problèmes lors de la suppression de la même eventlistener avec le même nom de rappel. J'ai fait face à ce problème tout en travaillant sur chrome. Ne peux pas dire sur les autres navigateurs.
Afin de faire parler de la troisième variable explicitement comme "faux".
OriginalL'auteur daksh_019