前言
本系列主要整理前端面试中需要掌握的知识点。本节介绍 JS中的事件模型和事件代理 。
文章目录
一、事件与事件流
事件:在HTML文档或者浏览器中发生的一种交互操作,使得网页具备互动性,常见的有加载事件、鼠标事件、自定义事件。
事件流:由于DOM是个树结构,如果在父子节点绑定事件时候,当触发子节点的时候,就存在一个顺序的问题,这就是事件流。
事件流都会经历的三个阶段
- 事件捕获阶段;
- 处于目标阶段;
- 事件冒泡阶段。
事件冒泡:一种从下往上的传播方式,由最具体的元素然后逐渐向上传播到最不具体的那个节点,也就是DOM的高层的父节点。
<body>
<button id="btn">Click me!</button>
</body>
<script>
var btn = document.getElementById('btn');
btn.onclick = function(){
console.log("1.Button");
}
document.body.onclick = function(){
console.log("2.Body");
}
document.onclick = function(){
console.log("3.document");
}
window.onclick = function(){
console