使用jQuery检查mouseleave()上光标所在的元素?
我有一组列表元素(
)在这样的图表上布局为气泡,其中气泡是
元素:
http://sofzh.miximages.com/javascript/PR7vR.png
我希望能够发现它们之间的区别
- 将鼠标从气泡#1移动到网格
- 将鼠标从气泡#1 直接移动到另一个气泡,例如气泡2
我试图在.mouseleave()
使用$(this)
,即使是泡泡,但是它会记录你要离开的元素而不是你当前正在hover的元素。
关于如何在mouseleave()
上获取鼠标移动元素的任何想法?
您需要使用event.toElement || e.relatedTarget
event.toElement || e.relatedTarget
:
$('li').mouseleave(function(e) { // new element is: e.toElement || e.relatedTarget });
(编辑注意|| e.relatedTarget
以确保浏览器兼容性)
如果你可以使用常规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 }