2013-05-13 3 views
1
$(document).ready(function() { 

$('#nav li').hover(
    function() { 
     //show its submenu 
     $('ul', this).slideDown(220); 

    }, 
    function() { 
     //hide its submenu 
     $('ul', this).slideUp(220);   
    } 
); 

Здравствуйте, Я хочу, чтобы установить «задержку» на моем DropDownMenu, потому что время реагировать слишком быстро. Когда я случайно навешиваю 4 раза подряд (он скользит вверх и вниз во время). Я прочитал и попробовал плагин jQuery для HoverIntent. Но я не могу реализовать его с помощью этого простого меню jquery.JQuery тайм-аут в раскрывающемся меню (hoverintent)

Есть ли люди с таким опытом? Я действительно был бы благодарен, я пытался реализовать его, но безуспешно (я плохо в jquery). Пожалуйста, дайте подсказку/код, спасибо!

+0

'.slideDown (1000)'? Параметр number для этого метода - это продолжительность «перехода» (в миллисекундах). Я не знаю, так ли это. Ваш вопрос немного путается ... – DaGLiMiOuX

+0

Итак, как вы себя чувствуете? Если вы перемещаете мышь и назад, должны ли она сдвигаться и начинать скатываться вниз от текущей позиции? Или, возможно, на мыши _out_ он должен ждать x миллисекунд, прежде чем начинать продвигаться вверх, и вообще не скользит вверх, если перед x появляется другая мышь _enter_? – nnnnnn

ответ

2

Вам необходимо остановить текущую анимацию. Попробуйте это,

$('#nav li').hover(
    function() { 
     //show its submenu 
     $('ul', this).stop().slideDown(220); 

    }, 
    function() { 
     //hide its submenu 
     $('ul', this).stop().slideUp(220);   
    } 
); 
+0

спасибо !! это фиксировало проблему – RobinHo

1

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

$('#nav li').hover(
    function() { 
     //show its submenu 
     $('ul', this).stop().slideDown(220); 

    }, 
    function() { 
     //hide its submenu 
     $('ul', this).stop().slideUp(220);   
    } 
); 
Смежные вопросы