2012-11-13 30 views
1

我有一个简单的jQuery脚本。这是脚本:简单的jQuery点击事件脚本,其循环

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

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

此脚本打开一个子菜单。但是我对这个脚本有问题。如果你快速浏览它。脚本每次启动。当你快速浏览该项目时。菜单打开了很多次。我怎样才能解决这个问题?

感谢帮助

+0

你也会缓存''.sub-menu''。 – gdoron

回答

3

使用jQuery的.stop()功能。通过必要的论证前。 .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(); 
}); 
0

用这样的方式:

$('#nav .menu li').hover(function() { 
    $('.submenu').stop().slideDown(); 
}, function(){ 
    $('.submenu').stop().slideUp(); 
});