Добрый день, делаю выпадающее меню на jquery. Написал небольшой скрипт, и все вроде бы работает, но иногда появляется баг, что скрытое меню уже активно
Вот код скрипта:
$('.menu-header .menu li').hover(function(){
if ($(this).children('ul').length !== 0){
$(this).find('.sub-menu').toggleClass('sub-act');
}
});
проблема в том, что иногда после перезагрузки страницы класс sub-act уже задан, а при наведении на sub-menu оно скрывается.
Было бы не плохо увидеть немного больше кода. А то совсем мало контекста. В идеале, минимальный воспроизводимый пример на jsfiddle или codepan
Из того что уже есть в описании полагаю следующее
“иногда после перезагрузки страницы класс sub-act уже задан”
Значит он задаётся в другом куске кода
Вижу обработчик по наведению курсора. А mouseleave?
@yaroslavchernomor я тоже так подумал :) Но человек ведь учится. И на таких велосипедах как раз самое оно постигать основы, учиться процессу отладки и всему остальному
Решай задачу через события onmouseenter и onmouseleave. С hover-ом всегда проблемы то с производительностью то с определением что курсор покинул элемент при очень быстром движении, то с верным подсчетом заходов-выходов курсора с элемента.