Выпадающее меню jquery

Добрый день, делаю выпадающее меню на 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

Из того что уже есть в описании полагаю следующее

  1. “иногда после перезагрузки страницы класс sub-act уже задан”
    Значит он задаётся в другом куске кода

  2. Вижу обработчик по наведению курсора. А mouseleave?

@yaroslavchernomor я тоже так подумал :) Но человек ведь учится. И на таких велосипедах как раз самое оно постигать основы, учиться процессу отладки и всему остальному

Решай задачу через события onmouseenter и onmouseleave. С hover-ом всегда проблемы то с производительностью то с определением что курсор покинул элемент при очень быстром движении, то с верным подсчетом заходов-выходов курсора с элемента.

Задачу решил через стили. Спасибо всем за помощь :)

1 лайк

Перенес топик в обсуждения потому что сложно идентифицировать однозначный ответ или самый полезный комментарий. Всем спасибо.