区别
mouseover:鼠标移入事件所绑定的元素或其子元素时,都会触发该事件。(具有冒泡特性)
mouseenter:只有鼠标移入事件所绑定的元素时,才会触发该事件。(不具有冒泡特性)
举例
mouseover:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
#big{
background-color: antiquewhite;
width: 500px;
height: 500px;
margin: auto;
}
#small{
background-color: chartreuse;
width: 100px;
height: 100px;
}
</style>
<body>
<div id="big">
<div id="small">
</div>
</div>
<script>
let div_big=document.querySelector('#big')
div_big.onmouseover=function(){
console.log('mouseover')//冒泡特性
}
</script>
</body>
</html>
结果:在鼠标进入当前元素以及它里边的子元素时,都会触发mouseover事件,控制台显示打印了两次mouseover。
mouseenter:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
#big{
background-color: antiquewhite;
width: 500px;
height: 500px;
margin: auto;
}
#small{
background-color: chartreuse;
width: 100px;
height: 100px;
}
</style>
<body>
<div id="big">
<div id="small">
</div>
</div>
<script>
let div_big=document.querySelector('#big')
div_big.onmouseenter=function(){
console.log('mouseenter')//不具有冒泡特性
}
</script>
</body>
</html>
结果:在鼠标经过绑定的当前元素的时候mouseenter事件被触发,进入子元素时不再被触发,控制台显示打印了一次mouseenter。
补充
mouseover对应mouseout,mouseout鼠标离开被绑定元素或被绑定元素的子元素时都会触发该事件。
mouseenter对应mouseleave,mouseleave鼠标离开被绑定元素时才会触发该事件。