事件委托、阻止默认行为、阻止冒泡

556 阅读1分钟

什么是事件委托

所谓的事件委托,就是将本来自己该做的事情,委托给其他人做,利用冒泡的原理,将事件加在父级元素的身上,以此来触发执行的效果

好处:

  • 提高性能
  • 新添加的元素也可以执行之前的事件

怎么阻止默认动作

有些HTML元素存在默认的行为,比如说当点击a标签的时候,会执行跳转,点击form表单中的submit的时候,会提交表单并且跳转,为了阻止这种浏览器的默认行为,js提供了相对应的方法

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

当使用e.preventDefault()的时候,事件的默认行为就会被阻止了

return falsee.preventDefault()其实也是有区别的,仅仅是在HTML事件属性 和 DOM0级事件处理方法中 才能通过返回 return false 的形式组织事件宿主的默认行为。

怎么阻止事件冒泡

话不多说,直接上代码

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

如果不是IE的话,直接用 e.stopPropagation(),如果是IE的话,就用window.event.cancelBubble=true