[英]Why is mouseenter event triggered when page below is scrolled?
我注意到當鼠標未被觸摸但光標下方的頁面滾動時,會觸發mouseenter
事件。
看看這個小提琴: http : //jsfiddle.net/F3EwW/
重現步驟:
li
li
滾動到視圖時,您會注意到mouseenter
事件被觸發。 注意:要注意此行為,請確保鼠標光標在li
上方,並且保持不變。
最初,我將其作為默認行為接受,並繼續進行處理以在我的代碼中進行處理。.但后來我感到好奇,並想在任何我找不到的文檔中驗證此行為。
有人知道規范或任何真實網頁中的任何地方都記錄了此行為嗎?
我查找了w3spec事件滾動和鼠標事件順序 ,但是找不到任何有關此的信息。
同樣, mouseenter的規格說明如下:
當將指針設備移動到元素或其后代元素之一的邊界上時,用戶代理必須調度此事件。 此事件類型與鼠標懸停類似,但不同之處在於它不會冒泡,並且當指針設備從一個元素移動到其后代元素之一的邊界時,不得分派。
您意識到自己有$('li').mouseenter(function () {
?這會導致mouseenter事件綁定到此li元素的每個元素,因此當您使用上下鍵滾動和鼠標仍在ul中,並不斷輸入新的li。這不是 鼠標輸入新元素時 的意外功能 。
您正在尋找的行為更多是這樣的:
$("element").bind("mousemove mouseenter", function(event) {
//...
});
另外,您還需要認識到DOM可以理解鼠標相對於文檔的移動,而不是像操作系統那樣,可以理解鼠標在屏幕上的位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.