Prevent onmouseout when hovering child element of the parent absolute div WITHOUT jQuery
I am having trouble with the onmouseout
function in an absolute positoned div. When the mouse hits a child element in the div, the mouseout event fires, but I do not want it to fire until the mouse is out of the parent, absolute div.
How can I prevent the mouseout
event from firing when it hits a child element WITHOUT jquery.
I know this has something to do with event bubbling, but I am having no luck on finding out how to work this out.
I found a similar post here: How to disable mouseout events triggered by child elements?
However that solution uses jQuery.
Solution 1:
Use onmouseleave
.
Or, in jQuery, use mouseleave()
It is the exact thing you are looking for. Example:
<div class="outer" onmouseleave="yourFunction()">
<div class="inner">
</div>
</div>
or, in jQuery:
$(".outer").mouseleave(function(){
//your code here
});
an example is here.
Solution 2:
For a simpler pure CSS solution that works in most cases, one could remove children's pointer-events
by setting them to none
.parent * {
pointer-events: none;
}
Browser support: IE11+