1.原始事件模型
属性事件处理模式如下。
(1)基本事件处理。其实大多数人使用的JavaScript事件处理模式都是这种代码方式。
(2)事件类型。分为“输入事件”(如onclick)和“语义事件”(如onsubmint)。
2.标准事件模型
DOM2对其作了标准化。
(1)先由document向目标对象传播,称之为捕捉阶段。
(2)目标对象的事件处理程序运行,称之为事件处理阶段。
(3)从目标对象向document起泡,称之为冒泡阶段。
3.IE事件模型(IE5.5/IE6)
(1)传播过程只起泡,不捕捉。起泡中断方法:widow.event.cabcekBulle=true。
(2)event对象不是事件处理程序的函数参数,而是windw的全局变量。
(3)事件注册函数attachEvent()和反注册函数detachEvent()。
4.Netscape事件模型
null
addEventListener和attachEvent的作用和区别。
(1)支持的浏览器
addEventListener是标准事件模型,在非IE外的主流浏览器使用。attachEvent是IE事件模型,在IE中使用。
(2)处理程序执行阶段
addEventListener有三个参数,第一个为事件类型,第二个为处理函数,第三个表示事件是否支持Capturing。当第三个为true是,在捕获阶段执行;为false时,在冒泡阶段执行。
attachEvent均在冒泡阶段执行。
(3)作用域
addEventListener的作用域为元素的作用域,this为element的引用。
attachEvent的作用域为全局作用域,this为window引用
(4)事件处理程序执行顺序
addEventListener执行顺序与添加顺序一样
attachEvent执行顺序与添加顺序相反