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非常糟糕,不应该建议使用它们。您有更好的解决方案吗?