一、客户端JavaScript程序使用的是一种异步事件驱动的编程模型,以下是关于事件的一些概念:
event type,事件类型,也叫事件名称,比如:mousemove,click,load,keydown
event target,事件目标,是指事件发生或者事件绑定的对象。
event handler,事件处理器或者事件监听器,是事件发生时执行的函数
event object,事件对象,事件发生时,传递给事件处理器的参数,一般包括事件类型,事件目标等属性。
event propagation,事件传播,也叫事件捕捉(event capturing)是浏览器决定在哪个对象上调用事件的处理器的过程。
二、事件类型
事件类型越来越丰富了,一般有三个来源:DOM Level 3事件规范中的、HTML5规范中新定义的、移动设备上特有的。
三、事件注册
1、window.onload=function(){...}//弊端:一个对象只能定义一个事件处理器
2、<button id="myButton" onclick="alert('Thank you');">Click Here</button>
3、addEventListener,removeEventListener:b.addEventListener("click",function(){...},false);//可以为一个对象添加多个事件处理器
4、attachEvent,detachEvent:
四、事件的调用
调用顺序:先调用按1和2方式注册的事件,然后调用方式3注册的事件(按注册顺序调用),最后调用方式4注册的事件(随机的顺序)。
五、文档加载事件(Document load event)
load event在文档以及所有的图片都被加载完以后被调用,此时文档是可以操作的。
DOMContentLoaded在文档被加载和转换,所有延迟的脚本都执行后被调用,但是此时异步脚本和图片可能还在加载。虽然有未完成加载的内容,但是文档也可以被操作了。