jQuery中hover连续触发动画的bug

在用jQuery实现下拉菜单特效时,发现鼠标连续触碰对象会导致hover事件反复发生,如:
1
2
3
4
5
jQuery("#nav li").hover(function(){
$(this).find("ul:first").slideDown("slow");
},function(){
$(this).find("ul:first").slideUp("fast");
});
度娘找到相关的解决方法,增加filter过滤到正在执行的动画模块即可,修正后的代码如下:
1
2
3
4
5
jQuery("#nav li").hover(function(){
$(this).find("ul:first").filter(':not(:animated)').slideDown("slow");
},function(){
$(this).find("ul:first").slideUp("fast");
});