DOM重点核心(注册事件+DOM事件流)

目录

1.注册事件

注册时间概述

addEventListener()

删除事件

2.DOM事件流

DOM事件流理论

事件对象

事件对象的常见属性和方法

e.targe 和 this的区别

阻止默认行为

阻止冒泡

事件委托

禁止右键菜单和禁止选中文字

获得鼠标的坐标(可视区、页面、浏览器)

常用键盘事件

keyCode判断用户按下的键的ASCII值


1.注册事件

注册时间概述

传统注册方式,特点是注册时间是唯一的

方法监听注册方式,特点是同一个元素同一个事件乐意注册多个监听器

addEventListener()

eventTarget.addEventListener(type,listener[,useCapture])

type 事件类型字符串,比如click,mouseover,这里要注意不需要带on了

listener事件处理函数,事件发生时,会调用该监听函数

useCapture 可选参数,是一个布尔值,默认值是false

addEventListener(eventName,fn)    不需要添加'on'

attachEvent  中需要添加‘on’

删除事件

传统方式删除  div[0].οnclick=null

第一种  写eventTarget.addEventListener('click',函数),就是把函数体写在了外面 里面的函数调用不用再加小括号

          div[0].addEventListener('click',fn)        //不要看图片中的,这一步是要写的

          function fn(){

                alert(22)

                div[1].removeEventListener('click',fn)

}

第二种,先写eventTarget.attchEvent('onclick',函数) ,再同上写

两种写法无非就是第二种比第一种多了“on”

2.DOM事件流

DOM事件流理论

捕获阶段从大到小,冒泡阶段从小到大

事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即DOM事件流

addEventListener(type,listener[,useCapture])   

addEventListener(type,function(){},true/false)

  第三个参数如果是true,表示在事件捕获阶段调用事件处理程序;如果是false或者是省略,表示在事件冒泡阶段调用事件处理程序

有些事件是没有冒泡的,比如onblur 、onfocus 、onmouseenter、 onmouseleave

事件对象

eventTarget.οnclick=function(event){}

eventTarget.addEventListener('click',function(event){})

event就是事件对象,写在函数的小括号中

标准浏览器中将event 单写成e就可以识别,但是有些不能用,需要写window.event来获取查找

事件对象的常见属性和方法

e.targe 和 this的区别

e.target 返回的是触发事件的对象(元素)      this 返回的是绑定事件的对象(元素)

e.target  点击了哪个元素,就返回那个元素; this 不论点击谁,返回的都是绑定事件

一些兼容性问题

阻止默认行为

返回事件类型

div.addEventListener('事件类型',调用函数)   函数中写e.type

阻止默认行为(如让链接不跳转、点击提交按钮不提交)

普通浏览器 e.preventDefault()      前面接受的对象(var)是链接或者按钮

低版本浏览器 e.returnValue;

只限于传统的注册方式 return false

阻止冒泡

标准浏览器  e.stopPropagation()

低版本浏览器  e.cancelBubble=true    可以先进行一个判断

写在函数中,可以组织后面的冒泡

事件委托

不是给每个子节点单独设置事件监听器,而是将事件监听器设置在其父节点上,然后利用冒泡原理影响设置每个节点

绑定父级元素,在父级元素的函数中添加需求    e.target可以获得点击对象

禁止右键菜单和禁止选中文字

contextmenu主要控制应该何时显示上下文菜单,主要用于程序员取消默认的上下文菜单

在函数中添加e.preventDefault()即可

selectstart 开始选中  (不能进行复制等操作)

在函数中添加e.preventDefault()即可

获得鼠标的坐标(可视区、页面、浏览器)

client 鼠标在可视区的x和y坐标   e.clientX x方向     e.clientY y方向

page 鼠标在文档页面的x和y坐标   e.pageX  x方向   e.pageY y方向

screen 鼠标在电脑屏幕的x和y坐标     e.screenX x方向    e.screenY y方向

移动天使

用到了mousemove的触发方式,只要鼠标移动1px,事件就会被触发

常用键盘事件

onkeyup 某个按键被松开时触发

onkeydown  某个按键被按下时触发

onkeypress  某个按键被按下时触发 但是它不识别功能键,比如ctrl、shift、箭头等

使用addEventListener时不用加‘on’

三个时间的执行顺序是:keydown-keypress-keyup

keyCode判断用户按下的键的ASCII值

onkeydown和onkeyup不区分大小写    onkeypress区分大小写

将时间方式定义为"keyup"或者其他,在函数中直接console.log(e),就会出现点击按钮输出的结果

输入内容案例

用keyup而不用keydown,前者是弹开后进入判断再去执行事件不会再输入内容,而后者是直接输入内容再去进行判断

目标位置.focus()  focus直接定位到目标位置

这里写的是document.addEventListener(),是因为是在整个网页中点击的,绑定的是整个网页

快递单号查询

在大盒子中放两个小盒子,一个是弹出的显示大框,一个是输入框

keydown和keypress在文本框中的特征:两个事件触发时,文字还没有落进文本框 ,而keyup触发时文字已经落入文本框了

还有一个使用keyup的原因是,在按键的时候能先输入文字,即文本框中有字,隐藏的框能检测到value值不为空,所以能显示出来;如果换成其他两种形式,第一次在按键的时候,显示大框不会弹出来

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

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

相关文章

【教程】Linux/Jetson 安装X11VNC同步屏幕内容

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,请不吝给个[点赞、收藏、关注]哦~ 目录 背景说明 实际效果 安装步骤 安装 x11vnc 配置 x11vnc 配置 x11vnc 作为系统服务 使用 VNC 客户端连接 背景说明 通常vnc-server是单…

分享一个非常好用的安装包下载网站

当我们需要下载linux下的某些包,以便在自己的环境下进行编译自己的安装包的时候,可能需要用到一些各种版本的依赖包,从网上 百度会很麻烦。 这里分享一个很好用的安装包下载网站,记得点赞收藏 网站: Red Hat Enterprise Linux Repositories - pkgs.org 找到对应系统,然…

深入理解K8S【安全认证机制kubectlconfig】

深入理解K8S【安全认证机制】 1 核心概念 1.1 安全体系 对于大型系统来说,对业务的权限、网络的安全认证是必不可少的。 对于linux系统来说,用户和组、文件权限、SELinux、防火墙、pam、sudo等,究其核心的目的都是为了保证系统是安全的。 …

四天学会JS高阶(学好vue的关键)——作用域解构箭头函数(理论+实战)(第一天)

一、作用域 提到作用域(作用域又分为局部作用域和全局作用域),就要想到变量。因为作用域规定了变量能够被访问的范围(也就是作用域是为变量而服务的),为了避免全局变量污染这一情况,所以需要使…

如何排查域名网站无法访问了页面报500错误

本周有一个客户,购买Hostease的虚拟主机,询问我们的在线客服,域名网站无法访问了报500错误页面,怎么办?我们为用户提供相关教程,用户很快解决了遇到的问题。在此,我们分享这个操作教程&#xff…

bugfix:遇见“隐形字符”:ⅰ与i的编码迷局

前言 在软件开发的世界里,遇到各种奇奇怪怪的bug是在所难免的。今天,我就遭遇了一个看似简单实则棘手的问题——用户反馈账号无法登录,系统一直提示“账号不存在”。一番抽丝剥茧后,我发现问题竟然出在一个不起眼的字符上&#x…

Go微服务: Gin框架搭建网关, 接入熔断器,链路追踪以及服务端接入限流和链路追踪

概述 本文使用最简单和快速的方式基于Gin框架搭建一个微服务的网关调用微服务的场景网关作为客户端基于RPC调用某一服务端的服务并接入熔断和限流以及链路追踪具体场景:通过网关API查询购物车里的数据在最后,会贴上网关和购物车服务的代码仓库 服务端搭…

避雷:搭建AI知识库注意事项

AI知识库作为信息存储和进行智能处理的核心部分,受到越来越多企业的重视。为了更好地发展,企业也纷纷开始搭建AI知识库。然而,在搭建AI知识库的过程中,也有很多雷区容易踩到,导致项目延迟、效果不佳甚至失败。所以&…

《控制系统实验与综合设计》计控第三次(含程序和题目)

实验七 采样控制系统的分析 一、实验完成任务 1、熟悉用 LF398 组成的采样控制系统; 2、通过本实验理解采样定理和零阶保持器的原理及其实现方法; 3、观察系统在阶跃作用下的稳态误差。 4.、研究开环增益 K 和采样周期 T 的变化对系统动态性能的影响…

Linux基础之进程-进程状态

目录 一、进程状态 1.1 什么是进程状态 1.2 运行状态 1.2 阻塞状态 1.3 挂起状态 二、Linux操作系统上具体的进程状态 2.1 状态 2.2 R 和 S 状态的查看 2.3 后台进程和前台进程 2.4 休眠状态和深度休眠状态 一、进程状态 1.1 什么是进程状态 首先我们知道我们的操作系…

分布式光伏监控系统功能模块详解

目前,分布式光伏发电系统的总容量比较小,并且光伏电站的功率受外界环境影响容易出现大起大落的现象。这使电压调整变得很困难。光伏电站运行维护人员不足,长时间不保养维护会影响光伏电站的发电效率。针对上述问题,鹧鸪云基于无线…

天锐绿盾|设计院图纸透明加密软件、制造业文件资料防止外泄

#图纸加密软件# 天锐绿盾是一家专注于数据安全解决方案的提供商,其产品主要为企业级用户设计,旨在保护敏感信息和知识产权免遭未经授权的访问或泄露。"天锐绿盾"的图纸透明加密软件和机械制造业文件资料防止外泄系统,是专为设计院…

JS中的宏任务和微任务

JavaScript 引擎是建立在一个事件循环系统之上的,它实时监控事件队列,如果有事件就执行,如果没有事件就等待。事件系统是一个典型的生产消费模式,生产者发出事件,接收者监听事件,在UI 开发中是常见的一个设…

Modbus TCP转CAN网关在不同行业中的应用以及其使用上的优势

倍讯科技Modbus TCP转CAN网关通常被用于工业自动化领域,特别是在需要连接现有Modbus TCP网络和CAN总线设备的场景中。以下是该网关在不同行业中的应用以及其使用上的优势: 1. 制造业: - 在制造业中,各种类型的设备和机器通常使用不…

Java项目实现报文数据校验注解方式(必输项、值大小)

普通项目 导入校验依赖 <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>4.1.0.Final</version></dependency><dependency><groupId>javax.validation</…

Docker安装Redis,并在 Visual Studio Code 中使用它

Docker安装Redis 查找Redis docker search Redis完整结果 PS C:\Users\cheng> docker search Redis NAME DESCRIPTION STARS OFFICIAL redis Redis is an open …

System V IPC(进程间通信)机制详解

文章目录 一、引言二、System V IPC的基本概念1、IPC结构的引入2、IPC标识符&#xff08;IPC ID&#xff09;3、S ystem V的优缺点 三、共享内存&#xff08;Shared Memory&#xff09;1、共享内存的基本概念2、共享内存的创建&#xff08;shmget&#xff09;3、共享内存的附加…

python的文件操作及函数式编程介绍

五、文件操作 1、读取键盘输入 input 获取标准输入&#xff0c;数据类型统一为字符串 #!/usr/bin/python # -*- coding: UTF-8 -*- str input("请输入&#xff1a;") print&#xff08;"你输入的内容是: ", str&#xff09; 这会产生如下的对应着输入的…

KeyShot 2023.3 Pro for mac/win:完美融合3D渲染与动画制作

在当今数字化时代&#xff0c;视觉内容的创作和表现越来越受到重视。无论是产品设计、建筑规划&#xff0c;还是影视特效&#xff0c;都需要具备出色的3D渲染和动画制作工具来展现创意和想法。而作为业内领先的3D渲染和动画制作软件之一&#xff0c;KeyShot 2023.3 Pro在这个领…

电脑刚开机的时候不卡,用一会就变卡顿了…怎么回事?

前言 昨天咱们聊到旧电脑更换了固态硬盘之后&#xff0c;开机就会变快的事情&#xff0c;这个确实是可行且有效的升级电脑办法之一。 看完这篇之后&#xff0c;切莫着急升级电脑硬件配置&#xff0c;因为这里的坑比你想象的还要多。 从机械硬盘测试的数据和固态硬盘的测试数…