事件捕获和事件冒泡与事件流有关系。
以下代码,点击 aa ,控制台会打印什么呢?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<div onclick="lia('div')">
<p onclick="lia('p')">aa</p>
</div>
</body>
<script>
function lia(str) {
console.log(str);
}
</script>
</html>
这就是事件冒泡,从内层向外层传递事件流。
而事件捕获正相反,通过外层到内层。
阻止事件冒泡:
- e.stopPropagation()
- window.event.cancelBubble = true