事件流:事件捕获阶段、处于目标阶段、事件冒泡阶段
事件捕获与事件冒泡的区别?如何阻止事件的默认行为,以及如何阻止事件冒泡?
事件捕获和事件冒泡的概念是相反的。
事件捕获:不具体的节点更早接收到事件,而最具体的节点最后接收到事件。“DOM2级事件”规范里面规定是从document对象开始传播,但大部分浏览器都是从window对象开始传播的。
事件冒泡:事件由最具体的元素开始,逐级向上传播到较为不具体的节点(document)。但大部分浏览器都冒泡到window对象。
取消事件默认行为:
DOM中的event对象:在event.cancelable为true的情况下,使用event.preventDefault();方法。
IE中的event对象:event.returnValue = false 。
阻止事件冒泡
DOM的event对象:在event.bubble为true的前提下,使用event.shopPropagation()方法。这个方法不仅可以阻止事件冒泡,还可以阻止事件捕获。
IE中的event对象:event.cancelBubble = true
HTML事件处理程序
DOM0级事件处理程序:事件处理程序只能在冒泡阶段调用
DOM2级事件处理程序:事件处理程序