"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué los oyentes de eventos en un bucle For apuntan al último objeto?

¿Por qué los oyentes de eventos en un bucle For apuntan al último objeto?

Publicado el 2024-12-12
Navegar:271

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

addEventListener usando un bucle For y pasando valores

Cuando se utiliza un bucle for para agregar detectores de eventos a múltiples objetos, el último objeto a menudo se convierte en El objetivo de todas las reubicaciones de oyentes. Este artículo abordará este problema y proporcionará un código corregido usando cierres:

Descripción general del problema:

Intentando agregar detectores de eventos a múltiples objetos usando un bucle, pero en última instancia, todos los oyentes apuntan al mismo objeto (el último).

Código fijo:

el cierre es una forma de prevenir este tipo de problema. El código modificado es el siguiente:

// 函数在点击时运行:
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 
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3