网站首页 > 技术文章 正文
1.什么是Dom事件模型
DOM事件模型。DOM事件模型分为两种:事件冒泡和事件捕获。事件冒泡最初是微软提出的DOM事件流的模型,顾名思义,就是指浏览器的事件流如同冒泡一样,从最低处到最高处。最低处对应的是DOM中最具体的元素,最高处则是最外层元素,最外层元素一般就是document元素。
事件捕获
- 事件捕获
捕获是从上到下,事件先从window对象,然后再到document(对象),然后是html标签(通过document.documentElement获取html标签),然后是body标签(通过document.body获取body标签),然后按照普通的html结构一层一层往下传,最后到达目标元素。我们只需要将addEventListener的第三个参数改为true就可以实现事件捕获。
<!-- HTML代码结构-->
<div class="grandparent">
爷爷
<div class="parent">
爸爸
<div class="son">
儿子
</div>
</div>
</div>
复制代码
const son = document.querySelector(".son");
const grandparent = document.querySelector(".grandparent");
const parent = document.querySelector(".parent");
son.addEventListener("click", () => {
console.log("儿子")
},true)
parent.addEventListener("click", () => {
console.log("爸爸")
},true)
grandparent.addEventListener("click", () => {
console.log("爷爷")
},true)
//当中addEventListener的第二个参数为true则我们点击儿子的时候,输出顺序就是爷爷->爸爸->儿子 这就是事件捕获
复制代码
页面效果:
控制台显示:
2. 事件冒泡
所谓事件冒泡就是事件像泡泡一样从最开始生成的地方一层一层往上冒。我们只需要将addEventListener的第三个参数改为false就可以实现事件冒泡。
<!-- HTML代码结构-->
<div class="grandparent">
爷爷
<div class="parent">
爸爸
<div class="son">
儿子
</div>
</div>
</div>
复制代码
const son = document.querySelector(".son");
const grandparent = document.querySelector(".grandparent");
const parent = document.querySelector(".parent");
son.addEventListener("click", () => {
console.log("儿子")
},false)
parent.addEventListener("click", () => {
console.log("爸爸")
},false)
grandparent.addEventListener("click", () => {
console.log("爷爷")
},false)
//当中addEventListener的第二个参数为false则我们点击儿子的时候,输出顺序是儿子->爸爸->爷爷 这就是事件冒泡
复制代码
页面效果:
控制台显示:
最后,咱给小编:
1. 点赞+评论
2. 点头像关注,转发给有需要的朋友。
谢谢!!
猜你喜欢
- 2025-01-11 模具设计之UG钣金实例教程(一)
- 2025-01-11 前端“三巨头”新进展 Angular 2025 React 19 Flutter
- 2025-01-11 原生前端小案例:如何使用HTML5 Canvas构建画板应用程序
- 2025-01-11 TS核心知识点总结及项目实战案例分析
- 2025-01-11 海外的一些b端管理系统界面设计案例
- 2025-01-11 都快2025年了,你们的前端代码都上装饰器了没?
- 2025-01-11 再见 Feign!推荐一款微服务间调用神器,跟 SpringCloud 绝配
- 2025-01-11 Web程序设计-基于Pure前端框架的ASP.NET MVC4设计实例
- 2025-01-11 你知道几种前端框架中的事件的方法
- 2025-01-11 前端案例·程序员的浪漫:流星雨背景
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)