Check what element the cursor is on upon mouseleave() with jQuery?

荒凉一梦 提交于 2019-12-19 05:02:07

问题


I have a set of list elements (<li> within a <ul>) laid out as bubbles on a chart like this, where the bubbles are the <li> elements:

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

I want to be able to detect the difference between

  1. Moving the mouse from bubble #1 to the grid
  2. Moving the mouse from bubble #1 directly to another bubble, such as bubble 2

I've attempted to use $(this) in the .mouseleave() even for a bubble, but it registers the element that you're leaving rather than the element that you're currently hovering.

Any ideas on how to get the element that the mouse is moving onto upon mouseleave()?


回答1:


You need to use event.toElement || e.relatedTarget:

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

(Edited to note || e.relatedTarget to ensure browser compatibility)




回答2:


If you can use ordinarey javascript, every event (e) mouse over and mouse out has an e.relatedTarget in most browsers. IE before #9 has event.toElement and event.fromElement, depending on if you are listening to a mouseover or 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
}


来源:https://stackoverflow.com/questions/7761117/check-what-element-the-cursor-is-on-upon-mouseleave-with-jquery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!