2011-01-26 165 views
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和離開,因爲這種方法就沒有起泡

我想知道是否有其他人對此有過想法......我有一種感覺,它有一個簡單的方法,但迄今爲止,谷歌並沒有改變任何事情。

+1

剛剛檢查 - 當鼠標靜止時,IE 7不會觸發`mouseover`或`mouseout`。 – jball 2011-01-26 21:07:01

+0

+1,很有趣。通過在div移動時檢查鼠標的位置,可以用javascript觸發事件。 – JCOC611 2011-01-26 21:07:18

回答