2010-07-15 84 views
0

代碼:jQuery的懸停LI> UL - 保持可見,直到拔下鼠標從子UL

 $("ul.menu_body li:even").addClass("alt"); 
     $('li a.menu_head').hover(function() { 
      $('ul.menu_body').slideToggle('medium'); 
     }, 
      function(){ 
     $('ul.menu_body').slideToggle('medium'); 
      }); 
在網上找到了這段代碼的某處

,原來這是對「李a.menu_head」點擊事件來顯示和隱藏「ul.menu_body」。

點擊正常工作。我更喜歡懸停效果。

不幸的是,當您將鼠標移出原始LI時,我的代碼立即隱藏了UL。我怎麼能調整這個,使「ul.menu_body」保持可見,直到鼠標離開UL,而不是「li a.menu_head」。

謝謝。

我的HTML更

<li> <a href="#" class="menu_head"></a> 
     <ul class="menu_body"> 
     <li>content</li> 
     <li>content</li> 
     </ul> 
    </li> 
+0

忽略我的答案......我誤解你的問題。道歉。 – Pat 2010-07-15 14:19:55

回答

1

您可以嘗試

$('li a.menu_head').mouseenter(function() { 
     $('ul.menu_body').slideDown('medium'); 
    }); 
    $('ul.main_UL_class_here').mouseleave(function(){ 
    $('ul.menu_body').slideUp('medium'); 
     }); 
+0

完美的作品,謝謝。肯定比具有空功能更好。 不知道mouseleave(),歡呼聲。 – dave1019 2010-07-15 14:32:19

0
$('li a.menu_head').hover(function() { 
     $('ul.menu_body').show() 
    }); 

    $('ul.menu_body').hover(function() { 

    }, 
    function(){ 
     $('ul.menu_body').hide(); 
    }); 

有點試驗和錯誤,似乎做it..not知道,如果有一個「空白」的功能是正確的壽。

0

問題是你正在使用懸停,試試這樣

$(document).ready(function() { 
    $("ul.menu_body li:even").addClass("alt"); 
    $('ul.menu_body').slideToggle('medium'); 

    $('li a.menu_head').bind('mouseenter', function() { 
     $('ul.menu_body').slideDown('medium'); 
    }); 
    $('.menu_body').bind('mouseleave', function(){ 
     $('ul.menu_body').slideUp('medium'); 
    }); 
}); 
+0

燈泡的時刻,是的,這是有道理的,爲什麼它發生在盤旋。謝謝。 – dave1019 2010-07-15 15:08:49