Простой сценарий события 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();
});