Довольно простой вопрос.
Есть меню на сайте и код JS который с ним взаимодействует. Если десктоп то мы навешиваем событие mouseover, а если мобилки то click. Но требуется так же учитывать resize окна браузера.
Сейчас у меня это выглядит примерно вот так:
const openSub = document.querySelector('.menu-item-has-children');
if (window.innerWidth > 992) {
openSub.addEventListener('mouseover', () => {
openSub.classList.contains('is-hover')
});
} else {
openSub.addEventListener('click', () => {
openSub.classList.contains('is-open')
});
}
window.addEventListener('resize', () => {
if (window.innerWidth > 992) {
openSub.addEventListener('mouseover', () => {
openSub.classList.contains('is-hover')
});
} else {
openSub.addEventListener('click', () => {
openSub.classList.contains('is-open')
});
}
}
Я код очень упростил, но думаю суть понятно. И вот такое решение оно некорректное, т.к. если мы ресайзим, то в любом случае у нас не отменяется первое условие.