Jquery菜单怪癖

时间:2011-12-04 15:58:54

标签: jquery menu

对不起,标题不是更具体。我编写的jquery菜单有一些小问题。它可以在wlmtest.info

上看到

它的主菜单。我遇到的麻烦如下。

如果将鼠标悬停在顶部的菜单按钮上,则菜单会下降。现在将鼠标向上移动,不要将鼠标悬停在实际下拉列表上。即使鼠标离开菜单,菜单下拉也会继续显示。

摆脱下拉列表的唯一方法是将鼠标悬停在菜单下拉列表上,然后将鼠标移开。

我的代码如下

jQuery("ul.lmenutabs li").mouseenter(function() 
{
    jQuery("ul.lmenutabs li").removeClass("active"); //Remove any "active" class
    jQuery(this).addClass("active"); //Add "active" class to selected tab
    jQuery(".lmenutab_content").hide(); //Hide all tab content

    var activeTab = jQuery(this).find("a").attr("href"); //Find the href attribute     value to identify the active tab + content
    jQuery(activeTab).fadeIn(); //Fade in the active ID content
    jQuery(".lmenutab_container").fadeIn()
    return false;
});

jQuery(".lmenutab_container").mouseleave(function() {
    jQuery(".lmenutab_content").hide(); //Hide all content
    jQuery(".lmenutab_container").hide(); //Hide all content
    jQuery("ul.lmenutabs li").removeClass("active");
    return false;
});

正如您所看到的,我有一个mouseenter来显示下拉列表。然后是一个mouseleave,这样当你将鼠标悬停在下拉列表上并离开时,下拉列表就会被隐藏。

如何将菜单按钮保留在顶部,以便隐藏下拉菜单?当您离开按钮将鼠标悬停在下拉菜单上时,没有下拉消失。

很抱歉,如果这听起来很混乱,如果你需要我,我会再次解释。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您正在等待菜单本身的mouseleave()事件,但如果鼠标从未进入菜单,则永远不会触发鼠标离开事件。

在标题上添加一个mouseenter事件以隐藏菜单和页面本身上的onClick()操作,以确保用户可以通过单击其外部来随时删除菜单。