2012-11-13 45 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(); 
});