2011-10-13 9 views
22
気泡が <li>要素であり、このようなチャート、上の気泡として

私は、リスト要素(<ul><li>)のセットをレイアウトしていますjQueryでmouseleave()を実行すると、カーソルがどの要素にあるかを確認しますか?

http://i.stack.imgur.com/PR7vR.png

私が検出できるようにしたいです

  1. グリッドにバブル#1からマウスを動かす
  2. なバブル2として、別のバブルをに直接バブル#1 からマウスを動かす

私がしようとしてきたとの違いバブルの場合でも.mouseleave()$(this)を使用しますが、現在ホバリングしている要素ではなく、残している要素を登録します。

mouseleave()でマウスが動いている要素を取得する方法に関するアイデアはありますか?

答えて

36

あなたはevent.toElement || e.relatedTargetを使用する必要があります。

$('li').mouseleave(function(e) 
{ 
    // new element is: e.toElement || e.relatedTarget 
}); 

(ブラウザの互換性を確保するために|| e.relatedTargetに注意することは編集)

+1

編集私は上記の@kennebecの呼び出しに基づいて追加しました。ブラウザの互換性を確保するためには、 'e.toElement || e.relatedTarget'だけではなく 'e.toElement' –

6

JavaScriptをordinarey使用することができた場合は、すべてのイベント(e)の上にマウスとマウスアウトが を持っていますほとんどのブラウザではe.relatedTargetです。 #9の前のIEは、mouseoverまたはmouseoutをリッスンしているかどうかに応じて、event.toElementおよびevent.fromElementを持ちます。

somebody.onmouseout=function(e){ 
    if(!e && window.event)e=event; 
    var goingto=e.relatedTarget|| event.toElement; 
    //do something 
} 
somebody.onmouseover=function(e){ 
    if(!e && window.event)e=event; 
    var comingfrom=e.relatedTarget|| e.fromElement; 
    //do something 
} 
関連する問題