Safari/Chrome中的MouseOver MouseOut问题

Zev*_*van 11 javascript safari google-chrome javascript-events

这是一个奇怪的,我很震惊,我从来没有注意到它.它的工作原理如下,如果你的鼠标静止并且div以编程方式在鼠标下方移动,则不会在chrome/safari中触发mouseover事件 - 同样适用于mouseout.当然,如果在鼠标移动到鼠标下方后稍微移动鼠标,它将按预期工作.

在jsFiddle上创建了一个demo.只需让div在你的鼠标下振荡,在firefox中运行良好,而不是在chrome或safari中运行 - 还没有在ie中测试.

我倾向于这个解决方案...基本上使用以下方法滚动我自己的mouseenter和mouseleave事件:

if (mouseX > divLeft && mouseX < divRight &&
    mouseY > divTop && mouseY < divBottom){
    // mouse is inside div
}
Run Code Online (Sandbox Code Playgroud)

我说mouseenter并离开,因为这种方法没有冒泡

我想知道是否有其他人对此有过想法...我觉得有一个简单的方法可以解决它,但到目前为止谷歌还没有提出任何建议.

san*_*thi 3

https://bugs.webkit.org/show_bug.cgi?id=4117

您可能会发现这个错误很有趣。