DOM事件机制详解:从事件流到事件对象处理

作者:页面旅途

时间:2026-10-21

浏览:240

本文深入解析DOM事件机制,涵盖事件流(冒泡与捕获)、三种主流事件处理程序(HTML内联、DOM0级、DOM2级及IE特有方式)以及事件对象的核心属性与方法。通过对比不同浏览器实现,帮助开发者掌握跨浏览器事件处理的最佳实践。

文章目录

DOM事件流机制

1.事件流

事件流描述了从页面接收事件的顺序。

(1)事件冒泡流。

事件最初由最具体的元素(即文档中嵌套层次最深的节点)接收,随后逐级向上传播至最不具体的节点(文档)。

(2)事件捕获流。

在捕获模式下,不太具体的节点会先接收到事件,而最具体的节点最后接收到事件。

JavaScript事件处理程序

2.JS事件探索

1.HTML事件处理程序 -- 直接写在html标签里面的js触发语句。

2.DOM0级事件处理程序。

将一个函数赋值给事件的处理程序属性,这是一种常用方法,具有简单且跨浏览器兼容的优势。

3.DOM2级事件处理程序。

(1)用于处理制定和删除事件处理程序的操作。

addEventListener(处理的事件名,事件处理程序的函数,布尔值) removeEventListner()。

4.IE事件处理程序。

attachEvent(事件处理程序的名称,事件处理程序的函数) detachEvent()

不需要添加第三个参数:IE8以及更早的浏览器版本只支持事件冒泡。


var eventUtil = {
  addHandler:function(element,type,handler){
  if(element。addEventListener){
  element。addEventListener(type,handler,false); 
  }else if(element。attachEvent){
   element。attachEvent(‘on' + type,handler)  ;
  }else{
    element【‘on' + type】= handler;
  }
}
   removeHandler:function(element,type,handler){
   if(element。removeEventListner){
   element。removeEventListner(type,handler);
  }else if(element。detachEvent){
   element。detachEvent(‘on' + type,handler) ;
  }else{
   element【‘on' + type】 = handler ; 
  }
}
}

事件对象详解

3.事件对象

在触发DOM上的事件时会产生一个对象,事件对象event。

(1)DOM中的事件对象。

1.type属性 用于获取事件类型。

2.target属性 用于获取事件目标。

3.stopPropagation()方法 用于阻止事件冒泡。

4.preventDefault()方法 阻止事件的默认行为。

(2)IE中的事件对象。

1.type属性 用于获取事件类型。

2.srcElement属性 用于获取事件的目标。

3.cancelBubble属性 用于阻止事件冒泡。 设置true 表示阻止冒泡 设置false 表示不阻止冒泡。

4.returnValue属性 用于阻止事件的默认行为。设置false表示阻止事件的默认行为。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本站!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章