jquery悬停事件无法正常工作

标签 jquery

我有一个简单的水平菜单,当我将鼠标悬停在每个项目上时,子菜单会向下滑动。所以基本上它是我们经常看到的典型导航菜单。我希望当鼠标悬停时子菜单会在鼠标移出时向下和向上滑动。我的问题是,如果我在项目中快速移动鼠标,就会有多个子菜单保持可见。我猜这是因为当我触发向上滑动时,向下滑动尚未完成。有什么办法可以防止这种情况发生吗?这是我的代码:

        $('#menu > li').hover(
                function () {
                    $('ul',$(this)).slideDown();
                },
                function () {
                    $('ul',$(this)).slideUp();
                }
            );

谢谢!

最佳答案

您应该调用stop在上下滑动之前,根据您的描述,您还应该为两个可选参数传递 true ,如下所示:

$('ul',$(this)).stop(true, true).slideDown();

第一个参数 (clearQueue) 告诉 jQuery 清除动画队列,停止任何排队的动画。

第二个参数(gotoEnd)告诉jQuery完成当前的动画。 (在您的情况下,此参数可能不是必需的,具体取决于您想要的效果。)

关于jquery悬停事件无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2009151/

相关文章:

javascript - 将 jQuery 的 .each 转换为 Javascript 的 .forEach

javascript - jQuery 以纯文本形式获取 div 的绿色背景(获取 "green",而不是 "rgb(0,128,0)",而不是 "#0f0")

javascript - Ajax 成功获取 URL 但未更新页面,而是获取 [object HTMLDivElement]

jquery - 随机移动元素的可放置和可拖动规划器问题

jquery - Kendo Grid Row 点击改变颜色

<li> 标签的 jQuery onclick 事件

jquery - 动态设置时从 div 检索背景图像

jquery - 如何在屏幕向下滚动 200 像素后更改图像大小。

jquery - 保持css悬停效果,当不再悬停时

javascript - $(...).live 不是函数错误和复选框选中错误