用交互操作中,經常需要知道用戶操作鼠標是否有移到元素內部或是元素外部,因此jQuery提供了一個mouseenter和mouseleave的快捷方法可以監聽用戶移動到內部的操作
使用上非常簡單,三種參數傳遞方式與mouseover和mouseout是一模一樣的,所以這里不再重復,主要講講區別,下面以mouseenter為例:
mouseenter JavaScript事件是Internet Explorer專有的。由于該事件在平時很有用,jQuery的模擬這一事件,以便它可用于所有瀏覽器。該事件在鼠標移入到元素上時被觸發。任何HTML元素都可以接受此事件。
mouseenter事件和mouseover的區別
關鍵點就是:冒泡的方式處理問題
簡單的例子:
mouseover為例:
<div class="aaron2"> <p>鼠標離開此區域觸發mouseleave事件</p> </div>
如果在p元素與div元素都綁定mouseover事件,鼠標在離開p元素,但是沒有離開div元素的時候,觸發的結果:
這里的問題是div為什么會被觸發? 原因就是事件冒泡的問題,p元素觸發了mouseover,他會一直往上找父元素上的mouseover事件,如果父元素有mouseover事件就會被觸發
所以在這種情況下面,jQuery推薦我們使用 mouseenter事件
mouseenter事件只會在綁定它的元素上被調用,而不會在后代節點上被觸發
這就是最本質的區別,具體的對應可以參考右邊的案例:
PS:同學可以根據右側代碼,自己寫出mouseout與mouseleave的區別哦~
請驗證,完成請求
由于請求次數過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報