Maison > interface Web > js tutoriel > Comment puis-je attribuer efficacement des gestionnaires d'événements à des éléments générés dynamiquement en JavaScript ?

Comment puis-je attribuer efficacement des gestionnaires d'événements à des éléments générés dynamiquement en JavaScript ?

Barbara Streisand
Libérer: 2024-11-29 12:05:14
original
689 Les gens l'ont consulté

How Can I Efficiently Assign Event Handlers to Dynamically Generated Elements in JavaScript?

Comment générer efficacement des gestionnaires d'événements à l'aide de boucles en JavaScript

Supposons que vous ayez généré dynamiquement des éléments dans votre document HTML, tels que plusieurs balises d'ancrage . Pour attribuer des gestionnaires d'événements à chacun de ces éléments, vous pouvez envisager d'utiliser une boucle similaire à la suivante :

for(i=1; i<11; i++) {
    document.getElementById("b"+i).onclick=function() {
        alert(i);
    }
}
Copier après la connexion

Cependant, cette approche ne donne pas le comportement souhaité car tous les gestionnaires partagent la même variable i. . Par conséquent, seul le dernier gestionnaire sera attribué et il alertera toujours la valeur "11".

Pour surmonter ce problème, vous pouvez utiliser une fonction distincte pour chaque gestionnaire qui prend i comme argument. Cela garantit que chaque gestionnaire a sa propre variable i :

function handleElement(i) {
    document.getElementById("b"+i).onclick=function() {
        alert(i);
    };
}

for(i=1; i<11; i++)
    handleElement(i);
Copier après la connexion

En utilisant cette technique, chaque gestionnaire se voit attribuer sa valeur unique de i, et le comportement souhaité est obtenu, chaque gestionnaire alertant de la valeur correcte ( 1 à 10).

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