Maison >interface Web >js tutoriel >Pourquoi mon RemoveEventListener ne fonctionne-t-il pas en JavaScript ?

Pourquoi mon RemoveEventListener ne fonctionne-t-il pas en JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 08:08:30460parcourir

Why Is My removeEventListener Not Working in JavaScript?

Javascript RemoveEventListener ne fonctionne pas

Dans le domaine de la gestion des événements, la méthode RemoveEventListener joue un rôle crucial dans le détachement des écouteurs d'événements des éléments. Cependant, rencontrer des problèmes avec RemoveEventListener qui ne fonctionne pas comme prévu peut être frustrant.

Considérez l'extrait de code suivant :

<code class="javascript">area.addEventListener('click',function(event) {
    app.addSpot(event.clientX,event.clientY);
    app.addFlag = 1;
},true);</code>

Ce code attache de manière compétente une fonction anonyme en tant qu'écouteur d'événement pour le 'click ' sur l'élément 'area'. Cependant, lorsque vous tentez de supprimer cet écouteur avec le code suivant :

<code class="javascript">area.removeEventListener('click',function(event) {
    app.addSpot(event.clientX,event.clientY);
    app.addFlag = 1;
},true);</code>

Vous risquez de rencontrer un barrage routier. Le problème réside dans la nature distincte des fonctions anonymes utilisées dans addEventListener et removeEventListener. La fonction fournie en argument de removeEventListener n'est pas identique à la fonction enregistrée précédemment. Pour résoudre ce problème, attribuez la fonction d'écoute à une variable nommée :

<code class="javascript">function foo(event) {
    app.addSpot(event.clientX,event.clientY);
    app.addFlag = 1;
}
area.addEventListener('click',foo,true);
area.removeEventListener('click',foo,true);</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn