Показать сообщение отдельно
  #1 (permalink)  
Старый 10.02.2017, 13:15
Аватар для Stay_Strong
Аспирант
Отправить личное сообщение для Stay_Strong Посмотреть профиль Найти все сообщения от Stay_Strong
 
Регистрация: 14.10.2015
Сообщений: 37

Как не отрабатывать функцию, если в течении секунды мышь обратно пришла на элемент?
Вопрос следующий. Есть выпадающее меню на jquery. Суть такая: нужно чтобы после того, как мышь покинула меню, само меню скрывалось через секунду. Однако, при этом, если мышь вернется в течении секунды, то ничего не происходило.

Я пробовал через settimeout. Однако, если я возвращаюсь на предыдущее меню, то оно мгновенно закрывается.

Вызов самого меню:
var animationTime = 100;
var sub = $('.wrap-cat-menu');

$(document).on('mouseenter', 'li.dropdown-cat', function() {
          if (sub.is(':visible')) {
              sub.slideUp(animationTime);
          } else {
              sub.slideDown(animationTime);
          }
          return false;
});


Обработка скрытия меню:
$(document).on('mouseleave', '.dropdown-cat', function() {
          setTimeout(function() {
            sub.slideUp(animationTime);
            return false;
          }, 1000);
});


Однако, никак не могу решить проблему. Помогите, кто может и объясните, пожалуйста, как это работает..

Последний раз редактировалось Stay_Strong, 10.02.2017 в 13:22.
Ответить с цитированием