10
這是一個奇怪的問題,我很震驚,我從未注意過它。它的工作原理是這樣的,如果你的鼠標仍然處於運行狀態,並且一個div以編程方式移動到鼠標下面,那麼在Chrome/safari中不會觸發mouseover事件 - 對於mouseout也是如此。當然,如果您在鼠標移動到鼠標下方時稍微移動鼠標,它將按預期工作。我創建了一個demo on jsFiddle。只要讓div在你的鼠標下襬動,在Firefox中運行良好,而不是在鉻或Safari瀏覽器 - 還沒有測試即。Safari/Chrome中的MouseOver MouseOut問題
我傾向於這種解決方案基本上都是我自己的滾動的mouseenter和使用鼠標離開事件這樣的:
if (mouseX > divLeft && mouseX < divRight &&
mouseY > divTop && mouseY < divBottom){
// mouse is inside div
}
我說的mouseenter和離開,因爲這種方法就沒有起泡
我想知道是否有其他人對此有過想法......我有一種感覺,它有一個簡單的方法,但迄今爲止,谷歌並沒有改變任何事情。
剛剛檢查 - 當鼠標靜止時,IE 7不會觸發`mouseover`或`mouseout`。 – jball 2011-01-26 21:07:01
+1,很有趣。通過在div移動時檢查鼠標的位置,可以用javascript觸發事件。 – JCOC611 2011-01-26 21:07:18