背景知识:
众所周知,DOM事件分为三个阶段:
捕获 阶段:在事件对象到达事件目标之前,事件对象必须从window经过目标的祖先节点传播到事件目标。 这个阶段被我们称之为捕获阶段。在这个阶段注册的事件监听器在事件到达其目标前必须先处理事件。
目标 阶段:事件对象到达其事件目标。 这个阶段被我们称为目标阶段。一旦事件对象到达事件目标,该阶段的事件监听器就要对它进行处理。如果一个事件对象类型被标志为不能冒泡。那么对应的事件对象在到达此阶段时就会终止传播。
冒泡 阶段: 事件对象以一个与捕获阶段相反的方向从事件目标传播经过其祖先节点传播到window。这个阶段被称之为冒泡阶段。在此阶段注册的事件监听器会对相应的冒泡事件进行处理。
在DOM事件执行的过程中,以下几个函数会被经常用到:
1.event.stopPropagation
阻止当前事件的进一步冒泡行为
2.event.stopImmediatePropagation
阻止当前事件的进一步冒泡行为并阻止当前事件所在元素上的所有相同事件处理函数的继续执行
注:绑定在元素上的事件的执行顺序与绑定顺序相同
3.event.preventDefault
取消当前事件的默认动作,譬如点击单选框(radioButton)后的调用此函数可以取消单选框选中动作
注:并非所有的事件的默认动作都可以被取消,最典型的情况:event.cancelable设为false时,事件的默认动作不会被取消