I have a mouseover
and mouseleave
event listener on the same elements, when you mouseover
it adds a class and mouseleave
removes the class.
I am running a forEach
so that when you mouseover
a specific item it shows a specific block of text for that item. That's why I'm using JS and not plain CSS.
I was looking for a way to optimize the following piece of code, please.
const pageNavRings = document.querySelectorAll('.page-nav-ring')
pageNavRings.forEach((pageRing) => {
pageRing.addEventListener('mouseover', (e) => {
const pageRingParent = e.target.closest('.page-nav__list--item')
pageRingParent.querySelector('.page-nav-label').classList.add('is-visible')
})
pageRing.addEventListener('mouseleave', (e) => {
const pageRingParent = e.target.closest('.page-nav__list--item')
pageRingParent.querySelector('.page-nav-label').classList.remove('is-visible')
})
})
Seems like this piece of code can be written better and more DRY. All and any help would be much appreciated.