DOM 事件模型

62 阅读1分钟

什么是DOM

文档对象模型 (DOM) 是HTML和XML文档的编程接口。它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。DOM 将文档解析为一个由节点和对象(包含属性和方法的对象)组成的结构集合。简言之,它会将web页面和脚本或程序语言连接起来。

什么是DOM事件

举例,click就是一个事件,可以在后面绑定函数执行功能。事件可以在文档(Document)结构的任何部分被触发,触发者可以是用户操作,也可以是浏览器本身。事件并不是只是在一处被触发和终止;他们在整个document中流动,拥有它们自己的生命周期。

DOM 事件模型

某一个元素有父元素,它的父元素还有父元素,它们都有监听事件,那么按什么顺序触发呢?

<div class=爷爷><div class=爸爸><div class=儿子>文字</div></div>
</div> 

首先从外向内找监听函数,然后从内向外找监听函数

  • 从外向内:事件捕获(Capture)
  • 从内向外:事件冒泡(Bubble)

开发者可以选择让自己的监听函数在捕获过程中执行,或在冒泡中执行

el.addEventListener('click', fn, bool) 1 第三个参数有3个值:

1.不传该参数,默认为false,该函数在冒泡过程中被调用 2.falsy值,该函数在冒泡过程中被调用 (6个falsy值:0,NaN,‘’,null,undefined,document.all) 3.true,该函数在捕获过程中被调用

默认为false,说明还是更倾向于事件冒泡

target 与 currentTarget 区别

e.target 是用户操作的元素,e.currentTarget 是程序员监听的元素。