什么是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 是程序员监听的元素。