Determine which element the mouse pointer is on top of in JavaScript
I want a function that tells me which element the mouse cursor is over.
So, for example, if the user's mouse is over this textarea (with id wmd-input
), calling window.which_element_is_the_mouse_on()
will be functionally equivalent to $("#wmd-input")
.
Solution 1:
DEMO
There's a really cool function called document.elementFromPoint
which does what it sounds like.
What we need is to find the x and y coords of the mouse and then call it using those values:
var x = event.clientX, y = event.clientY,
elementMouseIsOver = document.elementFromPoint(x, y);
document.elementFromPoint
jQuery event object
Solution 2:
In newer browsers, you could do the following:
document.querySelectorAll( ":hover" );
That'll give you a NodeList of items that the mouse is currently over in document order. The last element in the NodeList is the most specific, each preceding one should be a parent, grandparent, and so on.