簡體   English   中英

鼠標懸停和鼠標移出事件會不匹配嗎?

[英]Can mouseover and mouseout events be mismatched?

我試圖跟蹤鼠標是否在HTML元素內(請注意:它也有子元素)。 最簡單的解決方案(我現在正在使用)是附加到mouseover / mouseout並計數它們-如果“ mouseovers ”多於“ mouseouts ”,則鼠標應該在其中。

但我想知道-這會失敗嗎? 在某些(或多或少奇怪的)情況下,這些事件中的任何一個都可以被“跳過”,而使我的計數不匹配嗎?

一些簡單的試驗並沒有得出任何這樣的情況,但是隨后有很多邊緣情況,我想不出來。 有沒有人遇到過這種情況?

澄清:我還沒有遇到過這樣的問題。 我想知道是否可能出現這樣的問題。

補充:我想到了一個案例-子元素上的mouseover / mouseout被阻止在其處理程序中冒泡。 我的代碼不是這種情況,但仍有可能。

我曾經發生過類似的事情。 我得出的假設/結論是,至少就我而言,這可能與事件冒泡有關。 您在使用jQuery嗎? 如果您確實需要保證,那么值得嘗試未壓縮的庫。 否則,如果您的代碼足夠靈活,則可以解決該問題。這就是我所做的。

冒泡很可能是問題的根源。 當鼠標移入內部元素時,您將獲得一個mouseout事件。 http://www.quirksmode.org/dom/events/mouseover.html

建議,使用圖書館。 它們抽象了mouseenter和mouseleave事件之間不會冒泡的跨瀏覽器差異。 http://api.jquery.com/mouseenter/

如果您不想使用庫,則需要先檢查一下鼠標是否在要跟蹤的div內,然后再固定計數器。 如果顯示您擁有的代碼,則更容易向您顯示如何對其進行修復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM