Safari / Chrome中的MouseOver MouseOut问题

时间:2011-01-26 21:00:56

标签: javascript google-chrome javascript-events safari

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

我创建了demo on jsFiddle。只需让div在你的鼠标下振荡,在firefox中运行良好,而不是在chrome或safari中运行 - 尚未在ie中进行测试。

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

if (mouseX > divLeft && mouseX < divRight &&
    mouseY > divTop && mouseY < divBottom){
    // mouse is inside div
}

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

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

1 个答案:

答案 0 :(得分:3)

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

你可能会发现这个bug很有趣。