DOM怎么阻止默认动作?怎么阻止冒泡事件?

1,415 阅读1分钟

怎么阻止默认动作?

有一些html元素默认的行为,比如说a标签,点击后有跳转动作;

form表单中的submit类型的input有一个默认提交跳转事件;reset类型的input有重置表单行为。

如果你想阻止这些浏览器默认行为,JavaScript为你提供了方法。

 let $a = document.querySelector("#a")[0];
 $a.onclick = function(e){
     alert("跳转动作被我阻止了")
     e.preventDefault();
     //return false;//也可以
 }

既然return false 和 e.preventDefault()都是一样的效果,那它们有区别吗?当然有。

仅仅是在HTML事件属性 和 DOM0级事件处理方法中 才能通过返回 return false 的形式组织事件宿主的默认行为。

阻止冒泡事件:

function stopBubble(e){
  if(e&&e.stopPropagation){//非IE
   e.stopPropagation();
  }
  else{//IE
   window.event.cancelBubble=true;
  }
 }