10.事件流

news2024/12/26 22:31:34

10.1事件流和两个阶段说明

●事件流指的是事件完整执行过程中的流动路径
在这里插入图片描述
简单来说:捕获阶段是从父到子 冒泡阶段是从子到父

10.2事件捕获

事件捕获概念:
从DOM的根元素开始去执行对应的事件(从外到里)
●事件捕获需要写对应代码才能看到效果
●代码:

DOM.addEventlistener(事件类型,事件处理函数,是否使用捕获机制)

●说明:
addEventListener第三个参数传入 true 代表是 捕获阶段 触发(很少使用)
若传入false代表冒泡阶段触发,默认就是false
若是用L0事件监听,则只有冒泡阶段,没有捕获

10.3事件冒泡

事件冒泡概念
当一个元素的事件被触发时,同样的事件将会在该元素的所有祖先元素中依次被触发。这一过程被称为事件冒泡
●简单理解:当一个元素触发事件后,会依次向上调用所有父级元素的同名事件
●事件冒泡是默认存在的
●L2事件监听第三个参数是false, 或者默认都是冒泡

10.4阻止冒泡

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

事件对象.stopPropagation( )

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

【示例】

son.addEventListener('click', function (e) {
       alert('son')
       // 阻止流动传播
       e.stopPropagation()
})

我们某些情况下需要阻止默认行为的发生,比如阻止链接的跳转,表单域跳转
●语法:

e.preventDefault( )

【示例】

<form action="http://www.baidu.com">
     <input type="submit" value="提交">
</form>
<script>
     const form = document.querySelector('form')
     form.addEventListener('click', function (e) {
          //阻止表单默认提交行为
          e.preventDefault()
     })
</script>

10.5解绑事件

1.on事件方式,直接使用null覆盖偶就可以实现事件的解绑
语法:

//绑定事件
btn.onclick = function () { 
alert('点击了')
}
//解绑事件
btn.onclick = null

2.addEventListener方式,必须使用:

removeEventListener(事件类型,事件处理函数, [获取捕获或者冒泡阶段])

例如:

function fn() {
alert('点击了')
}
//绑定事件
btn.addEventListener('click', fn)
//解绑事件
btn.removeEventListener('click', fn)

注意:匿名函数无法被解绑

10.6鼠标经过事件

●鼠标经过事件的区别:
➢mouseover 和mouseout会有冒泡效果
➢mouseenter和mouseleave没有冒泡效果(推荐)

10.7两种注册事件的区别

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/824963.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java从入门到精通(三)· 基础逻辑

Java从入门到精通&#xff08;三&#xff09; 基础逻辑 一 分支结构 1.if分支 if分支是根据条件的真假来决定执行某段代码。 If 分支的小技巧和常见问题&#xff1a; 2.switch分支 通过比较变量的值来确定执行哪条分支。 switch的使用注意事项&#xff1a; 当存在多个case分…

基于Java的闲置物品管理系统(源码+文档+数据库)

很多在校学生经常因为冲动或者因为图一时的新鲜,购买了很多可能只是偶尔用一下的物品&#xff0c;大量物品将会闲置&#xff0c;因此&#xff0c;构建一个资源共享平台&#xff0c;将会极大满足师院学生的需求,可以将其闲置物品挂在资源共享平台上让有需要的学生浏览&#xff0…

玩转graphQL

转载至酒仙桥的玩转graphQL - SecPulse.COM | 安全脉搏 前言 在测试中我发现了很多网站开始使用GraphQL技术&#xff0c;并且在测试中发现了其使用过程中存在的问题&#xff0c;那么&#xff0c;到底GraphQL是什么呢&#xff1f;了解了GraphQL后能帮助我们在渗透测试中发现哪些…

Go语言Gin框架的基本用法

目录 【基本的HTTP请求】 GET请求 POST请求 文件操作 重定向 HTTP获取三方服务数据 不同格式的内容输出 异步请求 【中间件】 中间件校验数据 登录中间件 【启动多个服务】 Gin框架官网&#xff1a;https://gin-gonic.com/zh-cn/&#xff0c;新增一个Go文件&…

为机器人装“大脑” 谷歌发布RT-2大模型

大语言模型不仅能让应用变得更智能&#xff0c;还将让机器人学会举一反三。在谷歌发布RT-1大模型仅半年后&#xff0c;专用于机器人的RT-2大模型于近期面世&#xff0c;它能让机器人学习互联网上的文本和图像&#xff0c;并具备逻辑推理能力。 该模型为机器人智能带来显著升级…

光线追踪会影响3D渲染速度吗?

什么是光线追踪&#xff1f; 光线追踪 是模拟光源在现实生活中如何反应的方法。它追踪光线到达物体的路径&#xff0c;真实地模拟光线如何反射回来&#xff0c;以创建准确的反射、折射、阴影和间接照明。 我们在光线追踪中经常遇到的术语之一是路径追踪。它们是一样的吗&#x…

有什么进行仓库出入库管理的软件?

公司的仓库管理一直都是难题&#xff0c;不论是仓库进货发货&#xff0c;还是仓库储存&#xff0c;每一步都至关重要。其实对于仓库管理系统来说&#xff0c;主要包括以下三个需求&#xff1a; 1.录入商品信息2.记录进出货过程3.查询分析仓库数据 那么有哪些进行仓库出入库管…

【Spring Boot】请求参数传json对象,后端采用(pojo)CRUD案例(102)

请求参数传json对象&#xff0c;后端采用&#xff08;pojo&#xff09;接受的前提条件&#xff1a; 1.Spring Boot 的启动类加注解&#xff1a;EnableWebMvc 2.Spring Boot 的控制层接受参数采用&#xff1a;RequestBody Spring Boot 启动类&#xff1a;加注解&#xff1a;En…

03 制作Ubuntu启动盘

1 软碟通 我是用软碟通制作启动盘。安装软碟通时一定要把虚拟光驱给勾选上&#xff0c;其余两个可以看你心情。 2 镜像文件 我使用清华镜像网站找到的Ubuntu镜像文件。 Index of /ubuntu-releases/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 请自己选择镜像…

关于视频汇聚融合EasyCVR平台多视频播放协议的概述

视频监控综合管理平台EasyCVR具备视频融合能力&#xff0c;平台基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;平台既具备传统安防视频监控的能力与服务&#xff0c;也支持AI智能检测技术的接入&#xff0c;可应用在多行业领域的智能化监管场…

【实操教程】如何开始用Qt Widgets编程?(一)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 在本文中&#xff0…

矩阵按键行列扫描法与反转扫描法:原理、代码实现

矩阵按键&#xff1a;行列扫描法与反转扫描法 通常情况下&#xff0c;按键按下时会产生低电平信号&#xff0c;按键一般用低电平表示按下状态。 当按键没有被按下时&#xff0c;通常处于高电平状态&#xff0c;这是因为按键连接到电路时&#xff0c;内部的上拉电阻或外部的上拉…

快速创建vue3+vite+ts项目

安装nodejs 创建项目 npm init vitelatest 默认之后回车 选择项目名字my-vue-project 选择vue框架 选择ts 运行项目 cd my-vue-project npm install --registryhttps://registry.npm.taobao.org npm run dev

2023年第四届“华数杯”数学建模思路 - 案例_ ID3-决策树分类算法

文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法&#xff0c;就是频繁模式树算法&…

容器技术:Docker搭建(通俗易懂)

目录 Docker搭建环境准备Docker安装1、查看服务器是否安装Docker2、卸载Docker3、安装Dokcer依赖环境4、配置Docker国内阿里云镜像5、安装Docker6、查看Docker信息7、配置阿里云镜像加速8、镜像安装10、运行实例11、查看实例状态12、测试 Docker命令集合 Docker搭建 环境准备 …

华为OD机试真题 JavaScript 实现【云短信平台优惠活动】【2023Q1 200分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描四、解题思路五、JavaScript算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测…

Linux - 进程概念

1.冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系 截至目前&#xff0c;我们所认识的计算机&#xff0c;都是由一个个的硬件组件组成 ● 输入单元&#xff1a;包括键盘, 鼠标&#xff0…

VMWare vSphere 7.0.3环境通过PowerCLI批量修改虚拟机网卡的连接状态及开机连接设置

为避免网络IP冲突&#xff0c;虚拟机模板的网卡设置是连接中断、开机连接中断的&#xff0c;在通过PowerCLI批量发布虚拟机后&#xff0c;本文尝试PowerCLI通过PowerCLI批量修改虚拟机网卡的连接状态及开机连接设置。 一、PowerCLI环境搭建 详见前文 VMWare vSphere 7.0.3环…

MySQL 在CentOS下安装

yum安装 1、yum源安装 yum install mariadb-server2、启动MySQL服务 systemctl start mariadb3、查看运行状态 systemctl status mariadb4、设置初始密码 mysql -u rootuse mysql;update user set passwordpassword("root")where userroot;flush privileges;e…

AI为图像构建测谎仪

互联网上充斥着有趣的假照片——从汽车上飞驰的鲨鱼和奶牛到令人眼花缭乱的名人混搭。然而&#xff0c;卷积神经网络&#xff08;CNNs&#xff09;生成的超现实图像和视频赝品绝非笑料——事实上&#xff0c;它们可能非常危险。Deepfake色情在2018年抬头&#xff0c;世界领导人…