事件:
(一)事件流:描述页面中接收事件的顺序。
(二)事件冒泡:最具体的元素接收,然后逐级向上传播至最不具体的节点(文档)。
(三)事件捕获:由最不具体的元素接收,最具体的节点最后接收到事件。
事件处理:
(一)HTML事件处理:直接添加在HTML结构中。
在元素中添加事件监听。
缺点:监听某个方法,HTML和JavaScript两部分修改代码就比较麻烦。
(二)DOM0级事件处理:把一个函数赋值给一个事件处理程序。
在JavaScript中通过获取元素,使用函数操作事件。
.onclilc = function() {}
优点:改动时只需要改变JavaScript中的函数,不用动HTML页面元素。
缺点:多个事件会产生覆盖,后面的事件覆盖前面的,导致只有最后一个事件显示。
(三)DOM2级事件处理:
addEventListener("事件名","事件处理函数","布尔值");
true——事件捕获
false——事件冒泡
(1)true的触发总是在false之前。
(2)如果是多个true,触发顺序由内而外。
(3)如果是多个false,出发顺序由外至内。
removeEventListener();
.addEventListener("click",fun1);
function fun1() {}
.removeEventListener("click",fun1);
优点:事件不会被覆盖。
(四)IE事件处理程序
attachEvent
detachEvent
event对象:
当dom tree中的某个事件被触发时,会产生一个描述事件所有相关信息的对象,即event(事件对象)。
属性:
- type:获取事件类型。
- target:获取事件目标(页面元素)。
阻止事件冒泡:event.stopPropagation()
组织事件默认行为:event.preventDefault()