2010-10-20 39 views
0

請,我有這樣的代碼:如果用戶懸停時如何阻止slideDown()和slideUp()?

$('#menu ul > li:not(#menu ul.first li, #menu ul.second li)').mouseenter(function() { 
    $(this).find('a').addClass('active'); 
    $(this).stop(true).find('div.sub').slideDown(500); 

}).mouseleave(function() { 
    $(this).find('a.active').removeClass('active'); 
    $(this).stop(true).find('div.sub:visible').slideUp(100); 
}) 

有了這個代碼,我不能停止開始滑動動畫,如果用戶從「禮」刪除鼠標。因此,當用戶意外地懸停在少數菜單上時,它有點凌亂,所有子菜單打開,並以完整動畫關閉。

我嘗試使用「.stop()」,就像「.find('div.sub')。stop()」,它可以工作,但是如果您嘗試再次懸停,則子菜單隻顯示一半,它第一次顯示多少。

沒有人有這一個任何解決方案,因爲我不能重新編碼一遍:(

謝謝,對不起我的英文不好:)

回答

1

看一看的hovreIntent插件。它可以讓你確定用戶是否真的想將鼠標懸停在某個元素上,或者只是快速將鼠標懸停在該元素上,並且可以通過超時,延遲,靈敏度等進行配置。