为了阻止事件在捕获和冒泡阶段进一步传播,您可以在事件处理程序中调用 Event.stopPropation()
方法。
Event.stopPropagation();
Code language: CSS (css)
请注意,event.stopPropagation()
方法不会停止元素的任何默认行为,例如链接点击、复选框选中。如果您想停止默认行为,可以使用 Event.preventDefault()
方法。
假设您有一个位于 <div>
中的按钮。
<div id="box">
<button class="btn">Register</button>
</div>
Code language: HTML, XML (xml)
当您点击按钮时,事件会冒泡到 <div>
元素。以下代码显示了当您点击按钮时出现的两个 警报 框。
const btn = document.querySelector('.btn');
const box = document.querySelector('#box');
btn.addEventListener('click', function (e) {
alert('The button was clicked!');
});
box.addEventListener('click', function (e) {
alert('The box was clicked!');
});
Code language: JavaScript (javascript)
为了阻止点击事件传播到 <div>
元素,您可以在按钮的事件处理程序中调用 stopPropagation()
方法。
btn.addEventListener('click', function (e) {
alert('The button was clicked!');
e.stopPropagation();
});
Code language: JavaScript (javascript)
现在,当您点击按钮时,只显示一个警报框。
本教程对您有帮助吗?