javascript和HTML之间的交互是通过事件实现的。可以使用监听器预定事件,以便事件发生执行相应的代码,为观察者模式的模型,支持页面行为(javascript代码)及页面外观(HTML和CSS)之间的松散耦合。
事件流是从页面中接收数据的顺序。
IE的事件流叫做事件冒泡,即事件开始时由最具体的元素接收,然后逐级向上传到较为不具体的节点。Element div>Element body>Element html>Document(">”代表传递方向) DOM树依次向上,IE9/Firefox/Chrome/Safari 事件一直冒泡到window对象。
Netscape Communicator的事件流叫做事件捕获,是不具体的节点应该更早接收到事件,而最具体的节点应该是最后接收到事件。用意是在到达预定目标之前捕获到它。Document>Element html>Element body>Element div DOM树依次向下
“DOM2级事件”规定的事件流包括三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段(IE9、Opera、Firefox、Chrome及Safari都支持事件流;IE8及更早的版本不支持DOM事件流)
事件就是用户或浏览器自身执行的某种动作。如:click、load和mouseover,都是事件的名字。响应某个事件的函数就叫做事件处理程序。名字以"on"开头,click的事件处理程序就是onclick。
事件处理程序:HTML事件处理程序、DOM0级事件处理程序、DOM0级事件处理程序、IE事件处理程序、跨浏览器的事件处理程序
HTML事件处理程序:
DOM0级事件处理程序:
DOM0级事件处理程序:
IE事件处理程序:
跨浏览器的事件处理程序:
事件对象:在触发DOM上的事件时,会产生一个event事件,这个对象包含所有与事件有关的信息,包括导致事件的元素、事件的类型及其他与事件相关的信息
事件对象:DOM中的事件对象、IE中的事件对象、跨浏览器的事件对象。
DOM中的事件对象
IE中的事件对象
跨浏览器的事件对象
事件类型:web浏览器分为很多事件类型,“DOM3级事件”规定类型:UI事件、焦点事件、鼠标及滚轮事件、键盘与文本事件、复合事件、变动事件、HTML5事件、设备事件、触摸及手势事件。
内存与性能:事件委托、移除事件处理程序。
模拟事件:DOM中的事件模拟、IE中的事件模拟。