以上四个事件都是与鼠标相关的事件,其中onmouseenter和onmouseover均是鼠标移入时触发的事件,但是使用onmouseover的时候会触发冒泡事件,意思就是,当父元素和子元素均绑定onmouseover事件的时候,如果触发子元素的onmouserover事件,则同样会触发父元素的onmouserover事件。但是使用onmouseenter则不会触发父节点的事件。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title></title>
<style type='text/css'>
*{ margin:0px; padding:0;}
.box3{
height:100px;
background:red;
}
.box2{
padding:50px;
background:blue;
margin-top:100px;
}
</style>
</head>
<body>
<div class="box2" onmouseover="changge1()">
<div class="box3" onmouseover="changge2()">onmouseover</div>
</div>
<div class="box2" onmouseenter="changge1()">
<div class="box3" onmouseenter="changge2()">onmouseenter</div>
</div>
<script type="text/javascript">
function changge1(){
alert("2");
}
function changge2(){
alert("3");
}
</script>
</body>
</html>
同理onmouseleave也不触发冒泡事件,而onmouseout会触发冒泡事件。
因此,如果不希望触发冒泡事件的时候尽量使用onmouseenter和onmouseleave。