jQuery问题鼠标悬停在2号

jQuery问题鼠标悬停在2号,jquery,menu,events,mouseover,Jquery,Menu,Events,Mouseover,我有一个带有以下代码的菜单: <div id="head_navigation"> <ul> <li><a href="javascript:void(0);"><img src="img/start.jpg" width="57" height="40" title="start" alt="" /></a></li> <li><a hre

我有一个带有以下代码的菜单:

    <div id="head_navigation">
     <ul>
         <li><a href="javascript:void(0);"><img src="img/start.jpg" width="57" height="40" title="start" alt="" /></a></li>
         <li><a href="javascript:void(0);"><img src="img/favoriten.jpg" width="87" height="40" title="favoriten" alt="" /></a></li>
        </ul>
    </div>

    <div id="head_subnavigation">
     <ul id="start" class="hidden">
         <li><div class="button"><a href="javascript:void(0)" onclick="cwload('arztauswertung.html','start');" title="Rezeptsuche"><img src="img/icons/icon_rezeptsuche_on.png" width="50" height="62" alt="Rezeptsuche" /><br />Rezeptsuche</a></div></li>
         <li><div class="button"><a href="javascript:void(0)" onclick="cwload('arztauswertung.html','start');"><img src="img/icons/icon_zuzahlung_on.png" width="50" height="62" alt="Zuzahlung" /><br />Zuzahlung</a></div></li>
         <li><div class="button"><a href="javascript:void(0)" onclick="cwload('arztauswertung.html','start');"><img src="img/icons/icon_abrechnung_on.png" width="50" height="62" alt="Abrechnung" /><br />Abrechnung</a></div></li>
        </ul>
    </div>

#head_subnavigation”的CSS为“display:none”。当我将标题为“开始”的图像悬停时,将显示ID为“开始”的
    。等等

    它工作得很好,但我的问题是“老鼠出没”。当我将鼠标移出事件用于“头部导航”时,当我想将li项悬停在子菜单上时,我的子导航将消失。你明白我的意思吗

    只有当我跳转到“头部导航”分区或“头部导航”分区中的另一个li项目时,我才能使用鼠标出,但当我用鼠标从“头部导航”移动到“头部导航”时,我不能使用鼠标出???有人能帮忙吗?已经尝试了很多东西-没有什么真正有效的…:(

    谢谢你

    您好, 萨沙

    澄清 我有一个嵌套的导航菜单,其中子导航显示在基于title属性的图像$(“#head_navigation img”)的mouseover上

    我希望子导航保持打开状态,直到我将鼠标移出子导航或图像。

    您可以执行以下操作:

    $('#head_navigation li a').hover(function(){
    
        // Hide the visible subnavigations
        $('#head_subnavigation ul:visible').css('display','none');
    
        // Show the appropriate subnavigation
        $('#head_subnavigation ul#' + $(this).attr('title')).css('display','block');
    
    });
    
    这样,当您将鼠标移到新的顶级导航li上时,当前可见的“头”子导航ul将隐藏。您应该将整个导航包装在一个div中,以便在用户完全离开菜单区域时处理鼠标移出事件

    $('#navigationDiv').mouseout(function(){
    
        $('#head_subnavigation ul:visible').css('display','none');
    
    });
    
    使用包装div的问题是,如果菜单扩展到div之外,mouseout事件将触发,从而隐藏菜单

    // Globals
    var menuHoverTimer = 0;
    var menuHoverTimerLimit = 3; // 3 seconds
    var menuHoverTimerIntervalID;
    
    function stopHoverTimer(){
        clearInterval(menuHoverTimerIntervalID);
    }
    function resumeHoverTimer(){
        // This will run the menuHoverHandler function every 1 second
        menuHoverTimerIntervalID = setInterval(menuHoverHandler, 1000);
    }
    function menuHoverHandler(){
        menuHoverTimer++;
        if(menuHoverTimer > menuHoverTimerLimit) {
            stopHoverTimer();
            $('#head_subnavigation ul:visible').css('display','none');
            menuHoverTimer = 0;
        }
    }
    

    然后在每个悬停动作中,鼠标悬停时运行stopHoverTimer(),鼠标悬停时运行resumeHoverTimer();按照我的设置方式,用户不在菜单上滑动鼠标3秒后,它将隐藏菜单。我想您可能希望它更短。

    最快的方法是将所有菜单包装成一个更大的DIV,并在该DIV的mouseout事件中隐藏菜单。
    您还应该确保在任何给定的时间内只有一个子菜单可见(例如,在显示新菜单时隐藏打开的菜单)。

    perfekt@a432511-计时器解决方案对我来说绝对是完美的!!!!非常感谢!globals非常糟糕,不应该建议使用它们。您有更好的解决方案吗?