I was trying creating webpage with coloured squares and wanted on clicking any square its colour should be displayed in output.
console.log() inside of addEventListener() is giving output undefined, which I expected to be rgb code as in the colors[].
While the console.log() above addEventListener() is working as expected.
I think we can't access array index of square clicked inside of addEventListener().
var colors = [
"rgb(25, 0, 0)",
"rgb(10, 255, 0)",
"rgb(30, 0, 255)",
"rgb(55, 255, 0)",
"rgb(52, 0, 25)",
"rgb(60, 25, 255)"
]
var squares = document.getElementsByClassName("squares");
for (var i = 0; i < colors.length; i++) {
squares[i].style.backgroundColor = colors[i];
console.log(colors[i]);
squares[i].addEventListener("click",function() {
console.log(colors[i]); // NOT WORKING AS EXPECTED
});
}
.squares { border:1px solid grey; width:25px; height:25px; display:inline-block; }
<div id="container">
<div class="squares"></div>
<div class="squares"></div>
<div class="squares"></div>
<div class="squares"></div>
<div class="squares"></div>
<div class="squares"></div>
</div>