Простой сценарий события jquery click, его цикл

У меня есть простой скрипт JQuery. Это скрипт:

var menu = $('#nav .menu');

$('li', menu).mouseenter(function() {
    $(this).find('.sub-menu').slideDown();
}).mouseleave(function(){
    $(this).find('.sub-menu').slideUp();
});

Этот скрипт открывает подменю. Но у меня проблема с этим скриптом. Если вы пройдете через это быстро. Скрипт запускается каждый раз. Когда вы проходите через пункт очень быстро. Меню открывается много раз. Как я могу это исправить?

Спасибо за помощь

2 ответа

Решение

Используйте функцию.stop() в jQuery. Передавая необходимые аргументы отл. .stop(true,true),.stop(true)

$('li', menu).mouseenter(function() {
    $(this).find('.sub-menu').stop().slideDown();
}).mouseleave(function(){
    $(this).find('.sub-menu').stop().slideUp();
});

или передать это, так как контекст кажется мне немного более подходящим - он делает то же самое, что и.find()

$('li', menu).mouseenter(function() {
    $('.sub-menu',this).stop().slideDown();
}).mouseleave(function(){
    $('.sub-menu',this).stop().slideUp();
});

Используйте этот способ:

$('#nav .menu li').hover(function() {
   $('.submenu').stop().slideDown();
}, function(){
   $('.submenu').stop().slideUp();
});
Другие вопросы по тегам