- 共同点: 都是鼠标经过元素时,会触发事件。
- 不同点:mouseenter不会冒泡。
所以当使用mouseover时,鼠标经过盒子本身会触发,鼠标经过子盒子也会触发(因为冒泡)。而使用mouseenter时,只有经过盒子本身才会触发。
代码测试:
分别给父元素绑定mouseover事件和mouseenter事件。
<style>.father {width: 300px;height: 300px;background-color: pink;margin: 10px auto;}.son {width: 200px;height: 200px;background-color: skyblue;}</style>
<body><div class="father">father<div class="son">son</div></div><script>var father = document.querySelector('.father');var son = document.querySelector('.son');father.addEventListener('mouseover', function () {console.log(11);})father.addEventListener('mouseenter', function () {console.log(22);})</script>
</body>
效果如下:
与之相对的有鼠标离开事件mouseout和mouseleave,同样,mouseleave不会冒泡。