I recently discovered a strange behavior with the mouseout
event in JavaScript.
Please see my fiddle: http://jsfiddle.net/Uf3xQ/25/
When I hover over the button, the mouseenter
event is fired. When I leave the button, the mouseout
event is fired. So far so good.
Now when I hover, then click and the click event shows a div which is placed over the button, the mouseout
event will also be fired.
But when the div is showed after a short delay using setTimeout
for example, the mouseout event won't be fired until I move the mouse.
Can you explain this behavior to me?
UPDATE: I submitted the bug to chromium and they confirmed it. See here: http://code.google.com/p/chromium/issues/detail?id=159389
The bug also occurs in Opera, Safari (WebKit in common) and IE
I browsed WebKit bugzilla and https://bugs.webkit.org/show_bug.cgi?id=4117 appears to be your bug, you should add a new comment to the bug with a link to your testcase, as the testcases linked in the bug seem to be lost (404 error).