我有一组列表元素(<li>
中的<ul>
)在这样的图表上显示为气泡,其中气泡是<li>
元素:
http://i.stack.imgur.com/PR7vR.png
我希望能够发现
之间的区别我试图在$(this)
中使用.mouseleave()
即使是泡泡,但它会记录您要离开的元素,而不是您当前正在悬停的元素。
关于如何获取鼠标移动到mouseleave()
上的元素的任何想法?
答案 0 :(得分:40)
您需要使用event.toElement || e.relatedTarget
:
$('li').mouseleave(function(e)
{
// new element is: e.toElement || e.relatedTarget
});
(编辑注意|| e.relatedTarget
以确保浏览器兼容性)
答案 1 :(得分:6)
如果你可以使用常规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
}