2012-02-15 54 views

回答

1

您必须使用mouseover,因为mouseenter在从子元素移至父元素时未触发。另外,当您将鼠标悬停在子菜单上时,您必须使用.stop()动画来防止其滑动。将鼠标从子菜单移动到父元素也是如此。

http://jsfiddle.net/pTyvc/25/

$(".menu_item").mouseover(function(){ 
    $(this).addClass("selected") 
     .children().stop().slideDown(500); 
}); 

$(".menu_item").mouseout(function(e){ 
    $(this).removeClass("selected") 
     .children(".sub_menu").slideUp(500); 
}); 

$(".sub_menu").mouseover(function() { 
    $(this).stop(); 
}); 
+0

非常感谢它的工作 – 2012-02-15 14:44:12

+0

@亚瑟:我发现它实际上开始表现怪异,如果你移动鼠标滑过子菜单时,它会滑下来。这似乎有点复杂。 – pimvdb 2012-02-15 14:44:27

+0

添加'.animate({height:'100px'});' '停止()'后,为了div将继续下滑到全高 – Hadas 2012-02-15 14:45:43