30

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

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

我希望能够检测到

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

我曾尝试$(this).mouseleave()偶数用于气泡,但它会注册您要离开的元素,而不是您当前悬停的元素。

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

4

2 回答 2

54

您需要使用event.toElement || e.relatedTarget

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

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

于 2011-10-13T22:35:39.987 回答
8

如果您可以使用 ordinarey javascript,则在大多数浏览器中,每个事件 (e) 鼠标悬停和鼠标移出都有一个 e.relatedTarget。#9 之前的 IE 具有 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
}
于 2011-10-13T22:37:36.060 回答