1、冒泡型
事件从最特定的目标向最不特定的目标(documentx对象)触发,也就是事件从下向上进行响应,这个传递过程被形象地称为冒泡
2、捕获型
事件从最不特定的目标(document>对象)开始触发,然后到最特定的目标,也就是事件从上向下进行响应。
3、混合型
W3C的DOM事件模型支持捕获型和冒泡型两种事件流,但是捕获型事件流先发生,然后才发生冒泡型事件流。两种事件流会触及DOM中的所有层级对象,从document对象开始,最后返回document对象结束。
根据事件流类型,可以把事件传播的整个过程分为3个阶段。
捕获阶段:事件从document对象沿着文档树向下传播到目标节点,如果目标节点的任何一个上级节点注册了相同事件,那么事件在传播的过程中就会首先在最接近顶部的上级节点执行,依
次向下传播。
目标阶段:注册在目标节点上的事件被执行。
冒泡阶段:事件从目标节点向上触发,如果上级节点注册了相同的事件,将会逐级响应,依次向上传播。
静态绑定:把JavaScript脚本作为属性值,直接赋值给事件属性
动态绑定:使用DOM对象的事件属性进行赋值
事件处理函数是一类特殊的函数,与函数直接量结构相同,主要任务是实现事件处理,为异步调用,由事件触发进行响应。
事件处理函数一般没有明确的返回值。不过在特定事件中,用户可以利用事件处理函数的返回值影响程序的执行。
在DOM事件模型中,通过调用对象的addEventListener()方法注册事件,如
element.addEventListener(String type,Function listener,boolean useCapture)
在DOM事件模型中,使用removeEventListener()方法可以从指定对象中删除已经注册的事件处理函数,如
element.removeEventListener(String type,Function listener,boolean useCapture)