您的位置:首页 > 房产 > 建筑 > 专业的企业网站制作_b2b平台系统建设_苏州seo安严博客_网站运营一个月多少钱

专业的企业网站制作_b2b平台系统建设_苏州seo安严博客_网站运营一个月多少钱

2025/1/13 10:37:04 来源:https://blog.csdn.net/m0_74246993/article/details/145102146  浏览:    关键词:专业的企业网站制作_b2b平台系统建设_苏州seo安严博客_网站运营一个月多少钱
专业的企业网站制作_b2b平台系统建设_苏州seo安严博客_网站运营一个月多少钱

目录

前言

事件流与两个阶段说明

说明

事件捕获

目标

说明

事件冒泡

目标

事件冒泡概念

简单理解

阻止冒泡

目标

语法

注意

综合示例代码

总结


前言

梳洗罢,独倚望江楼。过尽千帆皆不是,斜晖脉脉水悠悠。肠断白蘋洲


事件流与两个阶段说明

事件流指的是事件完整执行过程中的流动路径

事件捕获:大到小

事件冒泡:小到大

说明

假设页面里有个div,当触发事件时,会经历两个阶段,分别是捕获阶段、冒泡阶段简单来说:捕获阶段是 从父到子 冒泡阶段是从子到父实际工作都是使用事件冒泡为主,很少使用捕获

事件捕获

目标

简单了解事件捕获执行过程事件捕获概念:从DOM的根元素开始去执行对应的事件(从外到里)事件捕获需要写对应代码才能看到效果代码:DOM.addEventListener(事件类型,事件处理函数,是否使用捕获机制)

说明

addEventListener第三个参数传入 true 代表是捕获阶段触发(很少使用)

若传入false代表冒泡阶段触发,默认就是false

若是用LO事件监听,则只有冒泡阶段,没有捕获

事件冒泡

目标

能够说出事件冒泡的执行过程

事件冒泡概念

当一个元素的事件被触发时,同样的事件将会在该元素的所有祖先元素中依次被触发。这一过程被称为事件冒泡

简单理解

当一个元素触发事件后,会依次向上调用所有父级元素的同名事件

事件冒泡是默认存在的

L2事件监听第三个参数是 false,或者默认都是冒泡

阻止冒泡

目标

能够写出阻止冒泡的代码问题:因为默认就有冒泡模式的存在,所以容易导致事件影响到父级元素需求:若想把事件就限制在当前元素内,就需要阻止事件冒泡前提:阻止事件冒泡需要拿到事件对象

语法

事件对象.stopPropagation()

注意

此方法可以阻断事件流动传播,不光在冒泡阶段有效,捕获阶段也有效

综合示例代码

<!DOCTYPE html>
<html lang="zh-CN">
​
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>事件冒泡示例</title><style>.outer {width: 300px;height: 200px;background-color: lightblue;padding: 20px;text-align: center;}
​.middle {width: 200px;height: 150px;background-color: lightgreen;padding: 20px;text-align: center;}
​.inner {width: 100px;height: 100px;background-color: lightcoral;padding: 20px;text-align: center;}</style>
</head>
​
<body><div class="outer" id="outer">外层元素<div class="middle" id="middle">中间元素<div class="inner" id="inner">内层元素</div></div></div>
​<script>document.addEventListener('DOMContentLoaded', function () {// 获取外层、中间和内层元素const outerElement = document.getElementById('outer');const middleElement = document.getElementById('middle');const innerElement = document.getElementById('inner');
​// 为外层元素添加点击事件监听器outerElement.addEventListener('click', function (event) {console.log('外层元素被点击');});
​// 为中间元素添加点击事件监听器middleElement.addEventListener('click', function (event) {console.log('中间元素被点击');});
​// 为内层元素添加点击事件监听器,并阻止事件冒泡innerElement.addEventListener('click', function (event) {console.log('内层元素被点击');event.stopPropagation(); // 阻止事件冒泡});});</script>
</body>
​
</html>


总结

玉炉香,红烛泪,偏照画堂秋思

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com