js中阻止冒泡和阻止默认事件

文章类型:Javascript

发布者:hp

发布时间:2023-05-22

在开发过程中,有时候需要阻止冒泡,有时候需要阻止默认事件

一:定义

1:冒泡:当一个元素上触发了某个事件(如点击事件),事件会从该元素开始向上冒泡,逐级触发其父元素的相同事件

2:默认事件:通常是指浏览器对特定事件的默认处理方式,比如点击链接时跳转、提交表单时刷新页面等

二:方案

1:阻止冒泡

A:通过event.stopPropagation()

const parentElement = document.getElementById('parent');
const childElement = document.getElementById('child');


childElement.addEventListener('click', (event) => {
  console.log('Child clicked');
  event.stopPropagation();
});

B:通过event.cancelBubble (火狐不兼容)

event.cancelBubble = true;

C:暴力方案

return false;

2:阻止默认事件

A:通过event.preventDefault()

const linkElement = document.getElementById('myLink');

linkElement.addEventListener('click', (event) => {
  event.preventDefault();
  console.log('Link clicked, but default behavior is prevented.');
});

B:event.returnValue,(部分浏览器支持)

event.returnValue=false;

C:暴力方案

return false;

三:总结

1:阻止冒泡采用event.stopPropagation(),阻止默认事件采用event.preventDefault()