jQuery - 防止快速鼠标移动排队悬停功能

时间:2010-11-23 14:30:14

标签: jquery hover delay

这是一个我似乎不断遇到的问题。例如,如果我有一个使用jQuery hover()函数的下拉导航菜单,我快速移动我的鼠标光标然后离开<li>约10次,则会出现子导航,然后消失10次。 / p>

有没有办法阻止此问题发生?

由于

4 个答案:

答案 0 :(得分:7)

是的,使用停止功能!

$(this).stop().animate(...);

或者

$(this).stop().show();

答案 1 :(得分:4)

我们使用Hoverintent作为菜单。在制作动画之前给出了明智的延迟:

http://cherne.net/brian/resources/jquery.hoverIntent.html

答案 2 :(得分:3)

使用stop()功能清除元素的动画队列:

$(this).stop(true).show();

答案 3 :(得分:1)

嗯,你可以在进入时取消绑定事件,并在退出时再绑定它。当我无法承受重新进入时,我倾向于使用信号量变量。

话虽如此,hover()事件本身可能不是排队,而是动画本身。请注意,您正在进行动画制作(信号量),并且在继续之前不要发出另一个或stop()正在进行的动画。