2013-02-07 41 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。 另一個建議是使用父標籤來維護懸停/隱藏/顯示,這樣你就不必處理菜單中任何鏈接的父母了。