var AddressesList = document.getElementsByTagName("li"); for (var i = 0; i < AddressesList.length; i++){ var allow = true; AddressesList[i].addEventListener("click", function() { if (allow == true) { AddressesList[i].style.backgroundColor = 'red'; allow = false; } }) }Sigo recibiendo el error:
Uncaught TypeError: Cannot read properties of undefined (reading 'style')¿Tengo alguna idea de que hacer referencia a un elemento de matriz dentro del detector de eventos devuelve indefinido? Porque cuando intento simplemente imprimir el elemento de la matriz, no estoy definido, pero funciona fuera del detector de eventos. ¿Cuál es el problema y cómo lo soluciono?
Está funcionando de esta manera
var AddressesList = document.getElementsByTagName("li"); for (let i = 0; i < AddressesList.length; i++) { const element = AddressesList[i]; var allow = true; element.addEventListener("click", function () { if (allow) { element.style.backgroundColor = "red"; allow = false; } }); } <!DOCTYPE html> <html> <head> <title>Parcel Sandbox</title> <meta charset="UTF-8" /> </head> <body> <div id="app"> <ul> <li>Inder</li> <li>Jane Doe</li> <li>John Doe</li> </ul> </div> <script src="src/index.js"></script> </body> </html>