在了解完事件流和事件对象之后,我们来看事件三剑客的最后一客:事件处理程序。在事件被用户触发之后,都有一个相应这个操作的处理函数,这个函数就叫做事件处理器(事件侦听器)
HTML事件处理程序
在定义的时候不能使用未经定义的HTML转义的HTML字符。在处理过程中,首先创建一个封装元素属性值的函数,这个函数中有一个局部变量event,就是事件对象,同个这个变量,可以直接访问事件本身。
DOM0级事件处理程序
使用JS指定事件处理程序。onclick
每个元素都有自己的事件处理程序属性,为这个属性的值设置为一个函数,就可以指定事件处理程序。此时的this就是当前元素
DOM2级事件处理程序
定义了两个方法,用于指定addEventListener()和removeEventListener()删除操作。他们接收3个参数:要处理的事件名、作为事件处理程序的函数、是否在捕获阶段调用这个程序。
通过addEventListener()添加的事件处理程序只能通过removeEventListener()移除,且参数必须相同,若使用addEventListener()添加的匿名函数无法移除
IE事件处理程序
attachEvent()和detachEvent()。接收2个参数:事件处理程序名称与事件处理程序函数,事件会被添加到冒泡阶段,此时this===window
跨浏览器的事件处理程序
需要重点关注冒泡阶段信息。
addHandle(要操作的元素,事件名称,事件处理程序函数)
removeHandle(要操作的元素,事件名称,事件处理程序函数) // 默认采用DOM0级方法