在JavaScript中,事件传播(Event Propagation)是指当事件发生在 DOM 元素上时,它是如何在 DOM
树中传播的。冒泡(Bubbling)和捕获(Capturing)是两种常见的事件传播方式。理解它们的工作原理对于开发者来说至关重要,因为它们可以影响事件处理的顺序和范围。
1. 冒泡
当一个事件发生在 DOM 元素上时,它首先在触发元素上被处理,然后沿着 DOM
树向上传播,直到达到根节点为止。这种从内向外的传播方式称为冒泡。
<!DOCTYPE html>
<html>
<head>
<title>Event Bubbling Example</title>
</head>
<body>
<div id="parent">
Parent Element
<div id="child">Child Element</div>
</div>
<script>
const parent = document.getElementById('parent');
const child = document.getElementById('child');
parent.addEventListener('click', () => {
console.log('Parent Clicked (Bubbling)');
});
child.addEventListener('click', () => {
console.log('Child Clicked (Bubbling)');
});
</script>
</body>
</html>