Отмена выполнения функции, если перестает выполнятся событие hover до истечения времени задержки

30 Июл
11
Вопросы jQuery11

629 1

Всем привет.

Подключил к главному верхнему меню блога zashitnik.com следующий скрипт:

1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">
                jQuery.noConflict();
                jQuery('ul#topnav').ready(function(){
                jQuery('ul#topnav li').hover(
                    function() {
                        jQuery(this).find("span").delay(300).slideDown(200);
                       
                    },
                    function() {
                        jQuery(this).find("span").fadeOut(300);
                    });
                });
            </script>

Чтобы подменю выползало не сразу, поставил задержку .delay ()

Вопрос: что нужно дописать к коду, чтобы в случае когда пользователь переводит курсор на другой пункт главного меню до того, как раскроется подменю (то есть до истечения задержки), функция переставала выполняться и подменю не появлялось?

Один комментарий
  1. Нашел решение вопроса. Помог замечательный плагин hoverIntent

    Просто скачиваем плагин, заливаем на сервер, подключаем к шаблону и в тексте скрипта, который вставлен в шаблон, меняем .hover на .hoverIntent

    Супер!