事件
用户点击页面上的某个元素,或者表单上的某个文本框获得焦点等等,这些都是事件
事件对象
当用户触发我们注册的事件之后,浏览器会创建一个事件对象,这个事件对象就包含了触发事件时的一些信息,比如时间戳,鼠标坐标,事件目标等等。然后浏览器会将这个事件对象,传递给事件处理函数,那么我们只需要在事件处理函数中申明一个形参,接收一下即可。
//html
<div id="box"></div>
//js
var box = document.getElementById('box');
box.onclick = function(event){
console.log(event) // 事件对象
}
事件流
事件对象需要被分派到事件目标。在分派开始之前,必须首先确定事件对象的传播路径,传播路径是事件通过的当前事件目标的有序列表,该传播路径反映文档的分层树结构。
列表中的最后一项是事件目标,并且列表中的前面的项目被称为目标的祖先,其中前面的项目作为目标的父项目。一旦确定了传播路径,事件对象就会经过一个或多个事件阶段。
共有三个事件阶段:捕获阶段,目标阶段和冒泡阶段。
- 捕获阶段:
事件对象通过目标的祖先从窗口传播到目标的父项。这个阶段也被称为捕获阶段
- 目标阶段:
事件对象到达事件目标。这个阶段也被称为目标阶段。
- 冒泡阶段:
事件对象以相反的顺序通过目标的祖先传播,从目标的父项开始,以窗口结束。这个阶段也被称为冒泡阶段
事件委托
本来是要注册给自己的事件,注册给了父元素.事件触发后的事情,委托给父元素执行