Javascript 在菜单下拉栏上应用2秒延迟

Javascript 在菜单下拉栏上应用2秒延迟,javascript,jquery,html,web-services,magento,Javascript,Jquery,Html,Web Services,Magento,仅当我悬停父项时,我试图在magento下拉菜单项上实现两秒钟的延迟。但我发现了一些问题 这里我有一个jQuery作为第一个菜单项。因此,当我将项目悬停时,其子菜单将在两秒钟后显示。我的jQuery是: jQuery(".level0.nav-1").mouseover(function() { setTimeout(function() { jQuery(".level0.nav-1 .dropdown-container.left").show(); }, 2

仅当我悬停父项时,我试图在magento下拉菜单项上实现两秒钟的延迟。但我发现了一些问题

这里我有一个jQuery作为第一个菜单项。因此,当我将项目悬停时,其子菜单将在两秒钟后显示。我的jQuery是:

jQuery(".level0.nav-1").mouseover(function() {
    setTimeout(function() {
        jQuery(".level0.nav-1 .dropdown-container.left").show();
    }, 2000);
});
jQuery(".level0.nav-1").mouseout(function() {
    setTimeout(function() {
        jQuery(".level0.nav-1 .dropdown-container.left").hide();
    }, 0);
});
问题是在我做了一个鼠标移动动作后,子菜单不会立即消失。只有当我重新将鼠标移到项目上并将鼠标移出时。
有人能帮我解决这个问题吗?我会很高兴学习一种新的方法,而不是我的方法。(我想这实际上不是很好)。

你能用“模糊”吗


您不能将相同的“鼠标移出”事件也添加到第二级,但不延迟2秒吗

例如:

jQuery(".level0.nav-1 .dropdown-container.left").mouseout(function() {
    $(this).hide();
});

你能详细说明你的答案吗?因为模糊只是失去焦点(只有一个事件),如果你有第二个菜单的焦点并且失去了它,它会消失得更快。尝试使用mouseenter/mouseleave,并且不需要在mouseleave
$(“.level0.nav-1.dropdown container.left”)中设置timeout。delay(2000)。fadeIn()&删除
设置超时
功能。
jQuery(".level0.nav-1 .dropdown-container.left").mouseout(function() {
    $(this).hide();
});