一、写在前面
mouseover
和mouseenter
之间是存在区别的,但是平时在使用的时候并不知道他们的区别,所以一直都处于混用的状态,下面这篇博客主要来详细叙述一下这两者的区别。
二、不同点
mouseover
和mouseenter
最本质的区别是:mouseover
支持事件冒泡,mouseenter
不支持事件冒泡。
①、触发A的mouseover和mouseenter事件
②、触发A的mouseout和mouseover事件,触发B的mouseover和mouseenter事件
③、触发A的mouseout和mouseover事件,触发B的mouseleave和mouseout事件
④、触发A的mouseout和mouseover事件,触发C的mouseover和mouseenter事件
⑤、触发A的mouseout和mouseenter事件,触发C的mouseleave和mouseout事件。
⑥、触发A的mouseout和mouseleave事件。
由上例子可以知道,mouseenter
和mouseleave
不存在事件冒泡,但是mouseout
和mouseover
存在事件冒泡。当在其子元素中来回切换时,mouseenter
和mouseleave
是不触发的,但是mouseout
和mouseover
是触发的。