1、什么是事件冒泡,他是如何工作的
在一个对象上触发某类事件(比如单击 onclick 事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即 document 对象(有些浏览器是 window)。
2、阻止事件冒泡的 ***
(2.1)w3c *** 是:event.stopPropagation(); 事件处理过程中,阻止冒泡事件,但不会阻止默认行为(跳转至超链接)
(2.2)IE 则是使用 event.cancelBubble = true 阻止事件冒泡
(2.3)return false; jq 里面事件处理过程中,阻止冒泡事件,也阻止默认行为(不跳转超链接)
封装 *** :
阻止默认行为:
w3c 的 *** 是 e.preventDefault(),IE 则是使用 e.returnValue = false;
封装: