Maison > interface Web > js tutoriel > Comment ajouter des écouteurs d'événements de clic à plusieurs éléments avec la même classe ?

Comment ajouter des écouteurs d'événements de clic à plusieurs éléments avec la même classe ?

Mary-Kate Olsen
Libérer: 2024-11-09 16:30:02
original
685 Les gens l'ont consulté

How to Add Click Event Listeners to Multiple Elements with the Same Class?

Ajout d'écouteurs d'événements de clic aux éléments de même classe

Dans ce scénario, vous disposez d'une vue de liste pour supprimer des identifiants et souhaitez ajouter une alerte de confirmation pour tous les éléments avec la classe « supprimer ». Cependant, vous avez rencontré un problème où seul le premier élément de la classe semble recevoir l'écouteur.

Solution

Pour résoudre ce problème, vous devez utiliser querySelectorAll au lieu de querySelector. querySelectorAll renvoie une NodeList contenant tous les éléments avec la classe spécifiée :

var deleteLink = document.querySelectorAll('.delete');
Copier après la connexion

Maintenant, vous pouvez parcourir la NodeList et ajouter des écouteurs d'événement à chaque élément :

for (var i = 0; i < deleteLink.length; i++) {
    deleteLink[i].addEventListener('click', function(event) {
        if (!confirm("sure u want to delete " + this.title)) {
            event.preventDefault();
        }
    });
}
Copier après la connexion

De plus, empêchez uniquement l'action par défaut si l'utilisateur ne confirme pas la suppression. Cela garantit que la suppression n'est exécutée que si l'utilisateur choisit explicitement de continuer.

Améliorations d'ES6

En utilisant ES6, vous pouvez simplifier la boucle en utilisant Array.prototype.forEach :

Array.from(deleteLinks).forEach(link => {
    link.addEventListener('click', event => {
        if (!confirm(`sure u want to delete ${this.title}`)) {
            event.preventDefault();
        }
    });
});
Copier après la connexion

Cette version utilise des chaînes de modèles (introduites dans ES2015) pour un syntaxe plus propre.

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