📅  最后修改于: 2023-12-03 15:37:05.960000             🧑  作者: Mango
在Javascript中,事件的冒泡是指事件从最内层元素开始触发并向外层元素传递。但是有些情况下,我们希望阻止事件继续传播,这时候可以使用stopPropagation()
方法。
stopPropagation()
方法只需要在事件处理程序中调用即可停止事件继续传播。
document.querySelector('div').addEventListener('click', function(event) {
event.stopPropagation();
// 其他处理代码
});
在上面的例子中,当点击<div>
元素时,stopPropagation()
方法会防止该事件传递到父元素甚至更外层的元素。
下面是一个更完整的示例。当点击<button>
时,会弹出一个提示框,但是点击提示框并不会让提示框消失,因为在提示框的事件处理程序中调用了stopPropagation()
方法。
<body>
<div>
<button>点击我</button>
</div>
<script>
let button = document.querySelector('button');
let div = document.querySelector('div');
button.addEventListener('click', function(event) {
alert('点击了按钮');
event.stopPropagation();
});
div.addEventListener('click', function(event) {
alert('点击了DIV');
});
</script>
</body>
stopPropagation()
方法是一个非常有用的方法,能够防止事件继续冒泡。在编写事件处理程序时,应该考虑到事件冒泡的影响,并根据需要使用stopPropagation()
方法来停止事件的传播。