jQuery的mouseout()和mouseleave()有什麼區別?jQuery的mouseout()和mouseleave()有什麼區別?
回答
mouseleave事件與處理事件冒泡的方式不同。如果在此示例中使用了mouseout,那麼當鼠標指針移出Inner元素時,處理程序將被觸發。這通常是不受歡迎的行爲。另一方面,mouseleave事件只在鼠標離開綁定元素時觸發其處理程序,而不是後代。所以在這個例子中,當鼠標離開Outer元素時觸發處理程序,而不是Inner元素。
來源:http://api.jquery.com/mouseleave/
令人驚訝的是很多結果@http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=jquery+mouseleave+mouseout+difference
mouseover與mouseenter:https:// jsfiddle。net/hejdav/945pv53h/3 /(mouseout&mouseleave等效) – hejdav 2017-04-25 10:46:18
jQuery的API文檔:
mouseout
此事件類型可能會由於事件令人頭痛冒泡。例如,在這個例子中,當鼠標指針移出Inner元素時,一個mouseout事件將被髮送到該元素,然後涓涓細流到Outer。這可以在不合時宜的時間觸發綁定的鼠標移出處理程序。請參閱.mouseleave()的討論以獲得有用的替代方法。
所以mouseleave
是一個自定義事件,它是基於上述原因而設計的。
可以有時間時mouseout
比mouseleave
一個更好的選擇。
例如,假設您已經創建了一個工具提示,您想在mouseenter
上顯示一個元素旁邊顯示的工具提示。您使用setTimeout
來防止工具提示即刻彈出。您使用clearTimeout
清除mouseleave
上的超時,因此如果鼠標離開工具提示將不會顯示。 這將工作99%的時間。
但現在假設您有連接到一個提示的元素是一個click
事件的按鈕,讓我們也假設這個按鈕會提示用無論是confirm
或alert
框中的用戶。用戶點擊按鈕和alert
火災。用戶按下它足夠快,以至於你的工具提示沒有機會彈出(到目前爲止這麼好)。
用戶按下alert
框的確定按鈕,然後鼠標離開元素。但是,由於瀏覽器頁面現在處於鎖定狀態,因此在按下確定按鈕之前不會觸發JavaScript,這意味着您的mouseleave
事件不會觸發。用戶按下確定後,工具提示將彈出(這不是你想要的)。
在這種情況下使用mouseout
將是適當的解決方案,因爲它會觸發。
你能解釋爲什麼`mouseout`在這種情況下會觸發?瀏覽器是否仍然處於'mouseout`的鎖定狀態? – user31782 2016-11-29 09:44:19
- 1. Jquery menu:mouseover/mouseout moseenter/mouseleave craziness
- 2. colorbox mouseout mouseleave
- 3. Mouseout和mouseleave不起作用
- 4. jQuery - 有什麼區別
- 5. jQuery中$('abc')和$(「abc」)有什麼區別?
- 6. AJAX與JavaScript和jQuery有什麼區別?
- 7. jquery中get()和eq()有什麼區別?
- 8. jquery lazyload和JAIL有什麼區別?
- 9. 「jQuery(selector)」和「$(selector)」有什麼區別?
- 10. jQuery:'$(this)'和'this'有什麼區別?
- 11. jQuery和Node.js有什麼區別?
- 12. jquery和jQuery UI的區別是什麼?
- 13. 有什麼區別`和$(Bash中有什麼區別?
- 14. 觸發的mouseleave和mouseout過於頻繁
- 15. 有什麼區別? :和||
- 16. &&和||有什麼區別?
- 17. 「/」和「/ *」有什麼區別?
- 18. 有什麼區別:。!和:r!?
- 19. ==和===有什麼區別?
- 20. Appender和〜有什麼區別?
- 21. $ @和$ *有什麼區別?
- 22. is和=有什麼區別?
- 23. #.00和#。##有什麼區別?
- 24. `==`和`is`有什麼區別?
- 25. '=='和'==='有什麼區別?
- 26. /和/#/有什麼區別?
- 27. | 0和~~有什麼區別?
- 28. `&`和`ref`有什麼區別?
- 29. ==和===有什麼區別?
- 30. ==和===有什麼區別?
http://api.jquery.com/mouseout/和http://api.jquery.com/mouseleave/很有用 – SheetJS 2013-08-14 04:55:23