2013-02-07 38 views
0

我正在建设一个网站,并有一个下拉菜单。由于设计的性质,我目前检测鼠标何时位于菜单项上;并显示相关的子菜单。对象消失与衰落子菜单代码 - jQuery的错误?

       <div class="menu-responsibility menu-item"> 
              <a class="menu-click" href="<?php echo ($baseURL);?>responsibility" title="Responsibility" ></a> 

                  <div class="sub-responsibility"> 
                   <ul class="sub-list"> 
                    <li><a href="<?php echo $baseURL; ?>responsibility/social" title="Social Responsibility">Social</a></li> 
                    <li><a href="<?php echo $baseURL; ?>responsibility/environmental" title="Environmental Responsibility">Environmental</a></li> 
                    <li><a href="<?php echo $baseURL; ?>responsibility/philanthropy" title="Philanthropy">Philanthropy</a></li> 
                   </ul>  
                  </div> 
          </div> 

这里是JS,我写:

 /* NOTE: Visibility was added due to display objects being clickable with 0 opacity. */ 
$(".menu-click").hover(function() { 
$(this).css('visibility', 'visible'); 
$(this).parent().css('visibility', 'visible'); 
$(this).parent().fadeTo("fast", 1); 
}, function() { 
if ($(this).parent().is(':hover')) { 
//alert ("hovering"); 
} else { 
    $(this).parent().fadeTo("fast", 0); 
} 
}); 

$(".menu-click").parent().mouseleave(function() { 
$(this).fadeTo("fast", 0, function() { 
    // this function will called after the opacity animation has completed 
    $(this).delay(500).css('visibility', 'hidden'); 
}); 
}); 
    /*End Sub-Menu Function */ 

这工作时,只是褪色的罚款;但是当不透明度为0并且元素仍然可见时,它们可以被点击(只是未见),这是不可接受的。

的错误: 有时,完全随机,一些菜单(和邻接子菜单)的悬停状态的消失。他们不在那里,不能突出显示。这将随机发生在其中一个菜单项中,如果您快速地在它们上面运行鼠标。当“结果”菜单项正在执行此操作时,Firebug会显示以下内容。它不能再突出显示。

<div class="menu-home menu-item"> 
<div class="menu-services menu-item" style="visibility: hidden; opacity: 0;"> 
<div class="menu-results menu-item" style="opacity: 0; visibility: hidden;"> 
<div class="menu-clients menu-item" style="visibility: hidden; opacity: 0;"> 
<div class="menu-about menu-item" style="opacity: 0; visibility: hidden;"> 
<div class="menu-responsibility menu-item" style="opacity: 0; visibility: hidden;"> 
<div class="menu-contact menu-item"> 

非常奇怪的错误,希望你们可以帮忙!我的开发网站是可用的,并可能会帮助:http://www.kipdo.com

在此先感谢!

回答

0

您的问题可能与您如何使用.parent()函数有关。

我建议你宁愿使用JQuery的.hide()和.show()函数,而不是改变内联CSS。 另一个建议是使用父标签来维护悬停/隐藏/显示,这样你就不必处理菜单中任何链接的父母了。