2012-02-15 12 views
0

ここにこの簡単な例があります: http://jsfiddle.net/pTyvc/1/ マウスを上に動かすとsub_menu divをslideUpにしたくありませんか?ありがとうjquery:別のdivでマウスイベントが発生した場合にdivが表示されないようにします

+0

それは私のために崩壊しません。おそらくあなたのブラウザはあなたを好きではありません。 – pimvdb

+0

彼は青いブロックに移動すると意味します。それも私のためにそれを行います。 –

+0

申し訳ありませんが、私のどちらかが好きではありません:) – pimvdb

答えて

1

子要素から親要素に移動するときにmouseenterが起動しないため、mouseoverを使用する必要があります。

さらに、サブメニューをマウスオーバーすると、アニメーションが.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

ありがとうございます。 –

+0

@Yasser:スライディングしているときにサブメニューをマウスオーバーすると、実際に奇妙な動作をします。これは少し複雑に思えます。 – pimvdb

+0

'.animate({height:' 100px '});' divが次々に全高に滑り落ちるように 'stop()'の後に。 – Hadas

関連する問題