事件模型分类:
1.原始事件模型(DOM0级)
(1)html代码中直接绑定
<input type="button" onclick="fun()">
(2)js代码绑定
var btn = document.getElementById('.btn');
btn.onclick = fun;
特点:
1.只支持冒泡,不支持捕获
2.同一类型的事件只能绑定一次,后绑定的会覆盖之前的事件
删除事件处理程序只需要将对应时间属性置为null
btn.onclick = null;
2.标准事件模型(DOM2级)(有以下三个过程:)
事件捕获阶段:事件从document一直向下传播到目标元素, 依次检查经过的节点是否绑定了事件
监听函数,如果有则执行
事件处理阶段:事件到达目标元素, 触发目标元素的监听函数
事件冒泡阶段:事件从目标元素冒泡到document, 依次检查经过的节点是否绑定了事件监听函
数,如果有则执行
事件绑定监听函数的方式如下:
addEventListener(eventType,handler,useCapture)
事件移除监听函数的方式如下:
removeEventListener(eventType, handler, useCapture)
特点:
1.可以在一个dom元素上绑定多个事件处理器,各自不会冲突
2.useCapture设置为true在捕获阶段执行,false在冒泡阶段执行处理函数
handler
3.IE事件模型(基本不用)
事件处理阶段
事件冒泡阶段
attachEvent(eventType,handler)