JavaScript阻止冒泡和阻止浏览器默认行为

事件兼容

  function fn (e) {
      var e = e ? e : window.event;
   }  

js 停止冒泡

在 老的 ie 中不支持 stopPropatation 方法来阻止冒泡的方式, 它自带的方式是 cancelBubble 属性来阻止冒泡

   function fn (e) {
      window.event ? window.event.cancelBubble = true : e.stopPropagation();
   }

stopPropagation 方法作用是阻止目标元素的冒泡事件, 但是不会阻止默认行为,

什么是冒泡事件:
如在一个按钮上绑定一个 click 事件, 那么这个click 事件会依次在它的父元素上被触发, stopPropagation() 就是阻止目标元素冒泡到父元素上

阻止默认行为:

chrome 等浏览器使用的方式是 preventDefault() 方法, 在老的 IE 中使用的是 e.returnValue = false;
preventDefault 它是事件对象的一个方法, 作用是取消一个目标元素的默认行为,如果元素本身没有默认行为,则会调用无效;

什么事元素的默认行为呢?
如 a 标签的默认跳转页面
input 的 submit 事件, submit 会默认提交表单

事件注意点:
event 代表事件的状态, 例如触发event 对象的元素,鼠标,的位置及状态,按下的键等等;
event 对象只在事件发生的过程中才有效。

参考原文: http://caibaojian.com/javascript-stoppropagation-preventdefault.html

你可能感兴趣的:(JavaScript阻止冒泡和阻止浏览器默认行为)