Как сделать чтобы скрипт срабатывал для множества элементов?
Как изменить данный скрипт чтобы он срабатывал для множества элементов с одинаковыми классами (для блога), он работает только для первого элемента, при наведении курсора на последующие элементы ничего не происходит.
let [frontBlock, backBlock] = [
document.querySelector('.frontBlock'), document.querySelector('.backBlock'), 0
]
frontBlock.addEventListener('mouseover', (e) => {
if (e.target && e.relatedTarget && e.target.closest('div') !== e.relatedTarget.closest('div') && e) {
e.target.closest('div').style.display = 'none';
backBlock.style.display = 'block';
}
})
backBlock.addEventListener('mouseout', (e) => {
if (e.target && e.relatedTarget && e.target.closest('div') !== e.relatedTarget.closest('div')) {
e.target.closest('div').style.display = 'none';
frontBlock.style.display = 'block';
}
})
Т.е. вот такой код блога, для первого контейнера этот скрипт работает, при наведении мышки на второй и последующие контейнеры ничего не происходит
<div class="container">
<div class="frontBlock">
<img src="1.jpg">
</div>
<div class="backBlock">
<img src="2.jpg">
</div>
</div>
<div class="container">
<div class="frontBlock">
<img src="3.jpg">
</div>
<div class="backBlock">
<img src="4.jpg">
</div>
</div>
Один блок находится над другим.
.container{
position: relative;
}
.frontBlock{
position: absolute;
}
.backBlock{
z-index: 9;
}
Источник: Stack Overflow на русском