-
事件冒泡
-事件开始由最具体的元素接受,然后事件沿着dom树向上传播到最上层元素 -
事件捕获
-最顶层元素首先接受到事件,然后事件沿着dom树向下传播,直到传播到事件的实际目标 -
dom事件流
-dom2级事件规定事件流包括三个阶段:事件捕获阶段,处于目标阶段,事件冒泡阶段。首先发生事件捕获,然后是实际的目标接受到事件,最后一个阶段是冒泡阶段,可以在这个阶段对事件做出响应。
-从实际目标往上每个节点都会接受到事件,但只有注册了事件处理程序的节点才会对事件做出响应。 -
事件处理程序
响应某个事件的函数就叫做事件处理程序。click事件的事件处理程序就是onclick。 -
绑定事件处理程序的几种方式
-HTML事件处理程序
例如:<input type="button" onclick="alert("hello world")"/>
在HTML中指定事件处理程序有两个缺点:首先,存在时差问题,可能用户触发事件时,js文件还没有加载。而且HTML与JavaScript代码紧密耦合,不利于维护。
-dom0级事件处理程序
将一个函数赋值给一个事件处理程序属性。简单并且跨浏览器,是目前最常用的方法。
例如:btn.onclick=function(){ //... }
-dom2级事件处理程序
addEventListener(),removeEventListener()
-IE事件处理程序
attachEvent(),detachEvent() -
event对象
event对象中包含所有与事件有关的信息。无论什么事件处理程序都会传入event对象 -
阻止默认行为
当给某元素注册事件处理程序后,事件函数执行完会返回一个值,这个值会传递给事件处理函数,。
比如给一个超链接注册一个onclick事件,执行相关函数后可以返回一个布尔值,如果返回值是true,事件处理函数会认为超链接点击了,就会跳转到目标页面,如果返回false,便阻止了超链接的跳转。类似事件还有onsubmit,阻止表单的提交。