首页 > 代码库 > 事件mouseover/out和mouseenter/leave

事件mouseover/out和mouseenter/leave

 
不论鼠标指针穿过被选元素或其子元素,都会触发mouseover事件。对应mouseout
只有在鼠标指针穿过被选元素时,才会触发mouseenter事件。对应mouseleave
对于mouseover和mouseenter两个事件,最大的区别就是mouseenter是不冒泡的事件。对于mouseover事件来说 当鼠标从其他元素移动到child节点时发生 但此事件会冒泡 所以会导致parent也触发mouseover。如果我们对parent注册了mouseover监听, 从parent移动到child同样触发parent的mouseover。如果注册的监听是mouseenter的话,无论鼠标从任何元素移动到child时,只有child元素发生mouseenter事件,而他的祖宗节点都不会因为冒泡而触发此事件。对于mouseout和mouseleave也是如此,当鼠标从child移出时,mouseout同样会冒泡到parent,从而触发parent的mouseout,而mouseleave同样无此问题。