防止事件冒泡和防止触发子元素
以mouseover为例
1. 防止事件冒泡,触发父元素
可以使用mouseenter,或者添加 e.stopPropagation()
2. 防止子元素被触发
style里添加 pointer-events: none
比如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
.parent {
background-color: red;
width: 200px;
height: 200px;
}
.child {
background-color: yellow;
width: 100px;
height: 100px;
margin: auto;
}
</style>
</head>
<body>
<p>只触发父元素</p>
<div class="parent" onmouseover="console.log('mouse over')">
parent
<div class="child" style="pointer-events: none;">
child
</div>
</div>
<p>只触发子元素</p>
<div class="parent">
parent
<div class="child" onmouseenter="console.log('mouse over')">
child
</div>
</div>
</body>
</html>