Maison > interface Web > js tutoriel > Comment puis-je conserver les écouteurs d'événements lors de la mise à jour du HTML interne d'un nœud DOM ?

Comment puis-je conserver les écouteurs d'événements lors de la mise à jour du HTML interne d'un nœud DOM ?

Linda Hamilton
Libérer: 2024-12-16 12:00:17
original
827 Les gens l'ont consulté

How Can I Preserve Event Listeners When Updating a DOM Node's innerHTML?

Préservation des écouteurs d'événements lors de la modification de innerHTML

Lors de l'attribution au innerHTML d'un nœud DOM, tous les écouteurs d'événements attachés aux éléments descendants seront détruits. Cela peut être problématique si l'intention est d'ajouter du contenu supplémentaire sans compromettre la gestion des événements existants.

Solution : insertAdjacentHTML

La méthode .insertAdjacentHTML() fournit une solution qui préserve écouteurs d'événements lors de la modification de innerHTML. En spécifiant l'emplacement du contenu inséré à l'aide de « afterend », il est possible d'ajouter du contenu sans affecter la structure DOM existante ou ses gestionnaires d'événements.

Exemple :

Considérez l'extrait de code suivant :

var mydiv = document.getElementById('mydiv');

// Appending content using .innerHTML (destroys event listeners)
mydiv.innerHTML += '<p>New paragraph</p>';

// Appending content using .insertAdjacentHTML (preserves event listeners)
mydiv.insertAdjacentHTML('beforeend', '<p>New paragraph</p>');
Copier après la connexion

Dans cet exemple, la méthode .insertAdjacentHTML() a réussi ajoute un nouveau paragraphe à l'élément #mydiv tout en préservant les écouteurs d'événements existants. Cette approche peut être appliquée à tout élément DOM nécessitant une modification de contenu sans compromettre sa gestion des événements.

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal