如果用户徘徊,如何停止slideDown()和slideUp()?

时间:2010-10-20 12:18:28

标签: jquery animation

拜托,我有这个代码:

$('#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);
})

使用此代码,如果用户从“li”中删除鼠标,我就无法停止开始滑动动画。因此当用户意外地悬停在几个菜单上时,所有子菜单都会打开,并以完整动画关闭,这有点混乱。

我尝试使用“.stop()”,例如“.find('div.sub')。stop()”,它可以工作,但是如果你再次尝试悬停,那么子菜单只显示了一半,如何它第一次出现了。

有没有人有这个解决方案,因为我不能再重新编码:(

谢谢并抱歉我的英语不好:)

1 个答案:

答案 0 :(得分:1)

查看hovreIntent插件。它将允许您确定用户是否真的希望将鼠标悬停在某个元素上,或者只是快速将其鼠标悬停在其上,并且可以通过超时,延迟,敏感度等进行配置。