2012-04-24 65 views
3

將鼠標懸停在某個元素上時,我的網站會創建一個工具提示。當鼠標停在元素上方時,會調用鼠標移出事件,移除工具提示,並且所有內容都與世界一致。除了有時候,用戶移動鼠標的速度太快,以至於創建工具提示時,鼠標不再位於元素內部。這意味着工具提示不會消失,除非用戶將鼠標懸停並移出元素。如何檢查鼠標是否不在javascript中的元素上?

我的解決方案是,在創建工具提示後,檢查鼠標是否位於所需的元素上,如果不是,則刪除它。不幸的是我不知道如何。

我試過these解決方案,但它們都需要一個mouseout事件才能工作。我是否錯過了某些東西,或者是否有另一種(希望更好)的方法來查找鼠標是否不在某個元素上?

+0

如果您發佈您的代碼,您將得到更準確的答案。也許代碼修復本身 – 2012-04-24 22:06:03

回答

2

這聽起來像瀏覽器正在拋出MouseOut事件,你忽略了它們。考慮綁定MouseOut事件默認爲一個處理程序,即使您還沒有設置工具提示。

我認爲每個MouseIn事件都有一個MouseOut事件。如果在規範或此特定瀏覽器中沒有這種情況,則會出現問題。在這種可怕的情況下,你可以在一秒鐘之後取消工具提示。

+1

我發現有另一個div覆蓋了本來應該拋出mouseover/mouseout事件的元素。替換那個div解決了我的問題。 – Holtorf 2012-04-25 16:43:31

+0

@Holtorf:這很吸引人,我現在非常好奇,如果在元素上覆蓋div可以防止覆蓋元素的鼠標移出。 – ninjagecko 2012-04-25 19:08:32

+1

問題是我正在等待來自重疊元素的onmouseout。但是如果重疊的元素沒有及時出現,則沒有檢測到鼠標輸出。解決方案是不創建覆蓋元素,但使用CSS來使它看起來像它。 – Holtorf 2012-04-25 22:05:19

相關問題