使用jQuery检查mouseleave()上光标所在的元素?

Tyl*_*man 26 javascript jquery nested mouseover mouseleave

我有一组列表元素(<li>在a中<ul>)在这样的图表上布局为气泡,其中气泡是<li>元素:

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

我希望能够发现它们之间的区别

  1. 将鼠标从气泡#1移动到网格
  2. 将鼠标从气泡#1 直接移动到另一个气泡,例如气泡2

我试图$(this).mouseleave()偶数气泡中使用它,但是它会记录你要离开的元素而不是你当前正在悬停的元素.

关于如何获得鼠标移动元素的任何想法mouseleave()

N R*_*ler 47

你需要使用event.toElement || e.relatedTarget:

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

(编辑注意|| e.relatedTarget以确保浏览器兼容性)


ken*_*bec 8

如果你可以使用ordinarey javascript,那么每个事件(e)鼠标移出和鼠标移出都会在大多数浏览器中都有一个e.relatedTarget.#9之前的IE有event.toElement和event.fromElement,具体取决于你是在听mouseover还是mouseout.

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
}
Run Code Online (Sandbox Code Playgroud)