"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi les écouteurs d'événements dans une boucle For ciblent-ils le dernier objet ?

Pourquoi les écouteurs d'événements dans une boucle For ciblent-ils le dernier objet ?

Publié le 2024-12-12
Parcourir:911

Why Do Event Listeners in a For Loop Target the Last Object?

addEventListener Utilisation d'une boucle For et transmission de valeurs

Lorsque vous utilisez une boucle for pour ajouter des écouteurs d'événement à plusieurs objets, le dernier objet devient souvent La cible de tous les déplacements d’auditeurs. Cet article résoudra ce problème et fournira un code corrigé en utilisant les fermetures :

Présentation du problème :

Vous essayez d'ajouter des écouteurs d'événements à plusieurs objets à l'aide d'une boucle, mais en fin de compte, tous les auditeurs ciblent le même objet (le dernier).

Code fixe : la fermeture

est un moyen d'éviter ce type de problème. Le code modifié est le suivant :

// 函数在点击时运行:
function makeItHappen(elem, elem2) {
    var el = document.getElementById(elem);
    el.style.backgroundColor = "red";
    var el2 = document.getElementById(elem2);
    el2.style.backgroundColor = "blue";
}

// 自动加载函数以添加侦听器:
var elem = document.getElementsByClassName("triggerClass");

for (var i = 0; i 
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3