При клике на какой либо из item'ов цикл уже пройден, то есть i == 4. Кто может на пальцах объяснить.
var items = document.querySelectorAll('.item');
for(var i = 0; i < items.length; i++) {
items[i].addEventListener('click', function() {
alert(i);
});
}
.items {
display: flex;
}
.item {
display: flex;
justify-content: center;
align-items: center;
width: 200px;
height: 200px;
margin: 15px;
background: #ccc;
cursor: pointer;
user-select: none;
}
.active {
background: #aaa;
}
<div class="items">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
</div>