jQuery中的mouseenter和mouseleave事件

經過幾番查閱發現了jQuery中還有mouseenter和mouseleave事件,這兩個事件在手冊中找不到,所以特地查閱了一番。

大家知道事件的冒泡特性,在上面的BUG中也正是因爲這個冒泡特性,對於mouseover事件來說 ,當鼠標從其他元素 移動到 child節點時發生,但此事件會冒泡 所以會導致 parent 也出發mouseover。如果我們對 parent註冊了 mouseover監聽,從 parent移動到child 同樣出發parent的mouseover 有時候我們不希望這樣的事情發生。

對於 mouseover 和mouseenter 兩個事件 最大的區別就是 mouseenter 是 不冒泡的事件,這時候 如果註冊的監聽 是mouseenter的話 無論鼠標從任何元素 移動到child時 只有child元素 發生mouseenter事件 而其祖宗節點 都不會因爲冒泡 而觸發此事件。

對於 mouseout 和mouseleave 也是如此 當鼠標從child 移出時 mouseout同樣會冒泡到 parent 從而觸發parent的 mouseout 二mouseleave 同樣無此問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章