Maison > interface Web > js tutoriel > le corps du texte

Comment supprimer tous les écouteurs d'événements d'un objet DOM en JavaScript ?

Mary-Kate Olsen
Libérer: 2024-10-25 04:26:02
original
994 Les gens l'ont consulté

How to Remove All Event Listeners from a DOM Object in JavaScript?

Comment supprimer tous les écouteurs d'événements d'un objet DOM dans Javascript/DOM

Introduction

Javascript fournit diverses méthodes pour ajout et suppression d'écouteurs d'événements aux objets DOM. Cependant, il peut être difficile de comprendre comment supprimer tous les écouteurs d'événements attachés à un objet.

Supprimer tous les gestionnaires d'événements

Pour supprimer tous les gestionnaires d'événements de n'importe quel objet, vous pouvez utiliser l'approche suivante :

<code class="javascript">const clone = element.cloneNode(true);</code>
Copier après la connexion

Cette méthode préserve les attributs et les enfants, mais elle ne préserve aucune modification des propriétés DOM.

Supprimer les gestionnaires d'événements anonymes pour un événement spécifique Types

Des gestionnaires d'événements anonymes sont créés lorsqu'une fonction est utilisée comme rappel lors de l'enregistrement de l'écouteur d'événement sans attribuer de nom à la fonction. Ces gestionnaires ne peuvent pas être supprimés à l'aide de removeEventListener().

Pour gérer ce scénario, vous pouvez soit :

  1. Utiliser la fonction directement au lieu de renvoyer une fonction :
<code class="javascript">function handler() {
  dosomething();
}

div.addEventListener('click', handler, false);</code>
Copier après la connexion
  1. Créez une fonction wrapper qui stocke une référence à la fonction anonyme et utilisez-la avec les fonctions personnalisées addEventListener() et removeAllListeners() :
<code class="javascript">const addListener = (node, event, handler, capture = false) => {
  // Store references to handlers and nodes
  // ...
  node.addEventListener(event, handler, capture);
};

const removeAllListeners = (targetNode, event) => {
  // Remove listeners from specified nodes
  // ...
};</code>
Copier après la connexion

Utilisation

<code class="javascript">addListener(div, 'click', eventReturner(), false);
// ...
removeAllListeners(div, 'click');</code>
Copier après la connexion

Remarque :

Assurez-vous de supprimer les références au gestionnaire d'événements de la variable globale _eventHandlers lors de la destruction d'objets pour éviter les fuites de mémoire.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!