0207 事件
事件监听
事件监听版本
事件类型
事件
概念
事件在编程时系统内发生的动作或者发生的事情
例子
点击按钮
鼠标经过
拖拽鼠标
事件监听(注册事件,绑定事件)
让程序员检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应
语法
元素.addEventListener('事件',要执行的函数)
事件监听三要素
事件源:哪个DOM元素被事件触发了,要获取DOM元素
事 件:用什么方式触发,比如:鼠标单击click,鼠标经过mouseover
事件调用什么函数:要做什么
代码
<button>点击我</button><div>经过我</div><script>//1获取按钮元素let btn = document.querySelector("button")//2事件源btn.addEventListener("click", function () {alert("努力学习啊啊啊啊啊啊啊啊")})let box=document.querySelector('div')box.addEventListener("mouseover", function () {alert("努力挣钱啊啊啊啊啊啊啊啊")})</script>
例子 关闭二维码
二维码旁边有一个关闭按钮,点击然后关闭二维码
<style>* {margin: 0;padding: 0;}.erweima {position: relative;width: 160px;height: 160px;margin: 100px auto;border: 1px solid #ccc;}.erweima i {position: absolute;left: -13px;top: 0;width: 10px;height: 10px;border: 1px solid #ccc;font-size: 12px;line-height: 10px;color: #ccc;font-style: normal;cursor: pointer;}</style></head><body><div class="erweima"><img src="./images/code.png" alt="" /><i class="close_btn">x</i></div><script>//1获取元素let btn = document.querySelector(".close_btn")let code = document.querySelector(".erweima")//2事件监听btn.addEventListener("click", function () {code.style.display = "none"})</script></body>
例子 随机点名
<style>div {width: 200px;height: 40px;border: 2px solid brown;text-align: center;line-height: 40px;}button {margin-left: 65px;}</style></head><body><div></div><button>click this</button><script>let box = document.querySelector("div")let btn = document.querySelector("button")function getRandom(min, max) {return Math.floor(Math.random() * (max - min + 1)) + min}let arr = ["张三", "李四", "王五", "王朝", "马汉"]btn.addEventListener('click', function () {let random = getRandom(0, arr.length - 1)box.innerHTML = arr[random]})</script></body>
例子 随机点名完善
<style>div {width: 200px;height: 40px;border: 5px solid brown;text-align: center;line-height: 40px;}button {margin-left: 65px;}</style></head><body><div>点击下面按钮开始抽人</div><button>click this</button><script>let box = document.querySelector("div")let btn = document.querySelector("button")function getRandom(min, max) {return Math.floor(Math.random() * (max - min + 1)) + min}let arr = ["张三", "李四", "王五", "王朝", "马汉"]btn.addEventListener("click", function () {let random = getRandom(0, arr.length - 1)box.innerHTML = arr[random]//抽过的就删除arr.splice(random, 1)//抽完按钮就禁用,数组最后一个就禁用if (arr.length === 0) {btn.disabled = truebtn.innerHTML='所有人都已经抽过了'}})</script></body>
事件类型
鼠标事件
鼠标触发
click 鼠标点击
mouseover鼠标经过
mouseleave鼠标离开
焦点事件
表单获得光标
focus获得焦点
blur失去焦点
键盘事件
键盘触发
KeyDown键盘按下触发
keyup键盘抬起触发
文本事件
表单输入触发
input用户输入事件
例子 小米搜索框
<style>* {margin: 0;padding: 0;box-sizing: border-box;}ul {list-style: none;}.mi {position: relative;width: 223px;margin: 100px auto;}.mi input {width: 223px;height: 48px;padding: 0 10px;font-size: 14px;line-height: 48px;border: 1px solid #e0e0e0;outline: none;}.mi .search {border: 5px solid #ff6700;}.result-list {display: none;position: absolute;left: 0;top: 48px;width: 223px;border: 1px solid #ff6700;border-top: 0;background: #fff;}.result-list a {display: block;padding: 6px 15px;font-size: 12px;color: #424242;text-decoration: none;}.result-list a:hover {background-color: #eee;}</style></head><body><div class="mi"><input type="search" placeholder="小米笔记本" /><ul class="result-list"><li><a href="#">全部商品</a></li><li><a href="#">小米11</a></li><li><a href="#">小米10S</a></li><li><a href="#">小米笔记本</a></li><li><a href="#">小米手机</a></li><li><a href="#">黑鲨4</a></li><li><a href="#">空调</a></li></ul></div><script>//1获取元素inputlet search = document.querySelector("input")//2获取元素.result-listlet list = document.querySelector(".result-list")//3事件监听,获得光标事件search.addEventListener("focus", function () {//显示下拉菜单list.style.display = "block"//文本框变色search.classList.add("search")})</script></body>
例子 输入文字,计算用户输入的字数
<body><div class="w"><div class="controls"><img src="images/tip.png" alt="" /><br /><textareaplaceholder="说点什么吧..."id="area"cols="30"rows="10"maxlength="200"></textarea><div><span class="useCount">0</span><span>/</span><span>200</span><button id="send">发布</button></div></div><div class="contentList"><ul></ul></div></div><script>//1获取元素文本域arealet area = document.querySelector("#area")//2获取字符长度usecountlet useCount = document.querySelector(".useCount")//3监听绑定事件,用户输入的inputarea.addEventListener("input", function () {useCount.innerHTML = area.value.length})</script></body>
例子 全选文本
<style>* {margin: 0;padding: 0;}table {border-collapse: collapse;border-spacing: 0;border: 1px solid #c0c0c0;width: 500px;margin: 100px auto;text-align: center;}th {background-color: #09c;font: bold 16px "微软雅黑";color: #fff;height: 24px;}td {border: 1px solid #d0d0d0;color: #404060;padding: 10px;}.allCheck {width: 80px;}</style></head><body><table><tr><th class="allCheck"><input type="checkbox" name="" id="checkAll" /><span class="all">全选</span></th><th>商品</th><th>商家</th><th>价格</th></tr><tr><td><input type="checkbox" name="check" class="ck" /></td><td>小米手机</td><td>小米</td><td>¥1999</td></tr><tr><td><input type="checkbox" name="check" class="ck" /></td><td>小米净水器</td><td>小米</td><td>¥4999</td></tr><tr><td><input type="checkbox" name="check" class="ck" /></td><td>小米电视</td><td>小米</td><td>¥5999</td></tr></table><script>//let all = document.querySelector("#checkAll")//let cks = document.querySelectorAll(".ck")//let span = document.querySelector("span")//点全选按钮,下面的小按钮都选上all.addEventListener("click", function () {for (let i = 0; i < cks.length; i++) {cks[i].checked = all.checked}//如果点击全选了,全选文字就变成取消,没有点击就是全选if (all.checked === true) {span.innerHTML = "取消"} else {span.innerHTML = "全选"}})//点击下面小按钮,全选按钮被选for (let i = 0; i < cks.length; i++) {cks[i].addEventListener("click", function () {for (let j = 0; j < cks.length; j++) {if (cks[j].checked === false) {all.checked === falsereturn}}//all.checked = true})}</script></body>
例子 购物车加减操作
<style>div {width: 80px;}input[type=text] {width: 50px;height: 44px;outline: none;border: 1px solid #ccc;text-align: center;border-right: 0;}input[type=button] {height: 24px;width: 22px;cursor: pointer;}input {float: left;border: 1px solid #ccc;}</style>
</head><body><div><input type="text" id="total" value="1" readonly><input type="button" value="+" id="add"><input type="button" value="-" id="reduce" disabled><script>// 1. 获取元素 三个let total = document.querySelector('#total')let add = document.querySelector('#add')let reduce = document.querySelector('#reduce')// 2. 点击加号 事件侦听 add.addEventListener('click', function () {// console.log(typeof total.value)// total.value = total.value + 1// i++ 隐式转换// i = i + 1 total.value++reduce.disabled = false})// 3. 点击减号 事件侦听 reduce.addEventListener('click', function () {total.value--if (total.value <= 1) {reduce.disabled = true}})</script></div>
</body
相关文章:
0207 事件
事件监听事件监听版本事件类型事件概念事件在编程时系统内发生的动作或者发生的事情例子点击按钮鼠标经过拖拽鼠标事件监听(注册事件,绑定事件)让程序员检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应…...
SpringBoot整合Swagger
目录 一、swagger介绍 二、springboot集成swagger 1、创建一个springboot-web项目 2、导入相关依赖 3、编写一个Hellow工程 4、配置swagger --->config 5、启动springboot工程 6、配置swagger信息 7、配置swagger扫描接口 8、如何设置Swagger在生产环境中使用&…...
20230210英语学习
Why Do So Many Cats Have White ‘Socks’ on Their Paws? 为什么好多猫咪脚上都“穿着白袜子”? If you see a house cat, the odds are high that it will have white paws, a look that many owners affectionately call "socks."But socks are rar…...
【图像处理OpenCV(C++版)】——4.5 全局直方图均衡化
前言: 😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快…...
2022年API安全研究报告
目录 导读 2022年API安全风险概况 2022年平均每月遭受攻击的API数量超21万...
【内网安全-横向移动】基于SMB协议-PsExec
目录 一、SMB协议 1、简述: 2、工具: 二、PsExec 1、简述: 2、使用: 1、常用参数: 2、情况: 3、插件 三、PsExec(impacket) 1、简述: 1、impacket࿱…...
whistle 一个神奇的前端调试工具(抓包\代理工具)
在进行前端开发过程中,我们常常需要对一些接口进行处理,以及当后端接口没有弄好需要我们mock一些假数据,针对这些场景,我们就可以使用whistle 来解决。首先,我们要知道能满足我们需求的工具有很多,例如&…...
node.js下载和vite项目创建以及可能遇到的错误
目录 一、node.js的下载 1、去官网下载 节点.js (nodejs.org) 2、下载过程 第一步: 第二步: 第三步: 第四步: 第五步: 二、vite项目的创建(使用的工具是Hbuilder x) 第一步: 出现报错…...
如何使用python画一个爱心
1 问题 如何使用python画一个爱心。 2 方法 桌面新建一个文本文档,文件后缀改为.py,输入相关代码ctrls保存,关闭,最后双击运行。 代码清单 1 from turtle import * def curvemove(): for i in range(200): right(1) …...
1 Flutter UI Container和 Text 和图片组件
一 Text 组件Text 文本组件的一些属性如下body: const Text("this is leonardo fibonacci",// 文本对齐的方式textAlign: TextAlign.center,// 文本方向textDirection: TextDirection.rtl,// 字体显示最大的行数maxLines: 2,// 文字超出屏幕之后的显示方式 ellipsi…...
【Hello Linux】 Linux基础命令(持续更新中)
作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:介绍Linux的基础命令 Linux基础命令ls指令lsls -als -dls -ils -sls -lls -nls -Fls -rls -tls -Rls -1总结思维导图pwd指令whoami指令…...
记录一下slf4j2打印一直不成功
整理一个之前的老项目问题,发现日志一直打印不出来,本地启动发现了第一个问题日志如下:此处可发现,jar包冲突问题,去掉冲突的jar包即可,此处不做过多赘述。然后发现了重新启动项目,发现jar包冲突…...
【安全知识】——对Linux密码文件的处理
作者名:白昼安全主页面链接: 主页传送门创作初心: 一切为了她座右铭: 不要让时代的悲哀成为你的悲哀专研方向: web安全,后渗透技术每日emo:他既乐观又悲观,生活也一无是处昨天在挖掘…...
动手深度学习笔记(四十七)8.3. 语言模型和数据集
动手深度学习笔记(四十七)8.3. 语言模型和数据集 8.3. 语言模型和数据集8.3. 语言模型和数据集 在 8.2节中, 我们了解了如何将文本数据映射为词元, 以及将这些词元可以视为一系列离散的观测,例如单词或字符。 假设长度为 T T T的文本序列中的词元依次为 x 1 , x...
URL编码和Base64编码
URL编码和Base64编码前言一、URL编码1. URLEncoder和URLDecoder2. URL编码规则3. Javascript 原生提供三对 Url编码 的函数3.1 三对函数的不同点二、Base64编码1. Base64编码规则2. Base64编码使用3. JavaScript 原生提供两个 Base64 相关的方法总结前言 数据操作过程中&#…...
Flink 滚动窗口、滑动窗口详解
1 滚动窗口(Tumbling Windows) 滚动窗口有固定的大小,是一种对数据进行“均匀切片”的划分方式。窗口之间没有重叠,也不会有间隔,是“首尾相接”的状态。如果我们把多个窗口的创建,看作一个窗口的运动,那就好像它在不…...
想要精通算法和SQL的成长之路 - 柱状图中最大的矩形
想要精通算法和SQL的成长之路 - 柱状图中最大的矩形前言一. 柱状图中最大的矩形前言 想要精通算法和SQL的成长之路 - 系列导航 一. 柱状图中最大的矩形 原题链接 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求…...
网络安全实验室5.上传关
5.上传关 1.请上传一张jpg格式的图片 url:http://lab1.xseclab.com/upload1_a4daf6890f1166fd88f386f098b182af/ 上传一张后缀名为jpg的图片,上传抓包修改后缀名为别的,s或者直接删掉,放包 得到key is IKHJL9786#$%^& 2.请…...
JavaScript 严格模式(use strict)
文章目录JavaScript 严格模式(use strict)使用 "use strict" 指令严格模式声明严格模式的限制保留关键字JavaScript 严格模式(use strict) JavaScript 严格模式(strict mode)即在严格的条件下运行。 使用 “use strict” 指令 “use strict”…...
硬件设计—高性能ADC前端电路
高性能模数转换器(ADC)一般对系统的性能有非常高的要求,而AD芯片的“前端”的输入电路设计对ADC系统的的性能有非常大的影响。以下主要介绍了ADC芯片前端输入使用放大器和变压器各自的优势。 1、放大器和变压器根本区别 放大器是有源器件&am…...
详讲常见的字符函数
👦个人主页:Weraphael ✍🏻作者简介:目前是C语言学习者 ✈️专栏:C语言航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&a…...
for循环中异步请求问题:循环里面使用异步函数,如何等所有的异步函数都执行完再进行下一步
场景是这样的: 在一个列表循环里,对数据进行赋值,调用接口,循环外后面的代码需等待所有请求执行完成后再去执行。 1. Promise.all实现 Promise.all() 方法接收一个 promise 的 iterable 类型(注:Array&am…...
【iOS-系统框架】
文章目录前言47.熟悉系统框架CoreFoundation框架其他框架要点48. 多用块枚举,少用for循环for循环NSEnumerator遍历快速遍历基于块的遍历方式要点49.对自定义其内存管理语义的collection使用无缝桥接要点50.构建缓存时选用NSCache而非NSDictionaryNSCacheNSCache实例…...
Android APK 签名打包原理分析(二)【Android签名原理】
说到签名,从这个词来理解,正常个人需要签名的时候,一般是用来证明这是某个人的特属认证。 大家是否有印象?还记得我们之前在学习、总结网络相关知识的时候,说到过,客户端和服务端虽然通信数据上,可以采用对称加密和非对称加密组合去进行数据的加密,但是这时还有一个问题…...
linux判断文件不存在退出jenkins编译流程
# linux判断文件不存在退出jenkins编译流程 file"${WORKSPACE}/mc/jenkins_arm64.sh" if [ ! -f "$file" ]; then echo "jenkins_arm64.sh not exist" exit 0 fi dir(charge){checkout([$class: GitSCM, branches: [[name: …...
shell脚本(语法)
一、什么是shell脚本 1.1、shell 的两层含义:既是一种应用程序,又是一种程序设计语言 1.1.1、shell是一种应用程序 交互式地解释、执行用户输入的命令,将用户的操作翻译成机器可以识别的语言,完成相应功能称之为 shell 命令解析器。 shell 是…...
java高频面试题(2023最新)
目录一.java基础1.八大基础类型2.java三大特性3.重载和重写的区别4.pubilc、protected、(dafault)不写、private修饰符的作用范围5.和equals的区别6.hashcode()值相同,equals就一定为true7.short s 1;s s 1;(程序1)和 short s 1ÿ…...
视觉感知(二):车位线检测
1. 简介 本期为大家带来车位线检测相关知识点,以及算法工程落地的全流程演示。车位线检测是自动泊车领域必不可缺的一环,顾名思义就是采用环视鱼眼相机对路面上的车位线进行检测,从而识别出车位进行泊车。 较为常规的做法是使用四颗鱼眼相机环视拼接然后在鸟瞰图上做停车位…...
2023.2.10学习记录Docker容器
Docker 必须跑在Linux内核上 镜像是一个轻量级可执行的独立软件包 新建一个docker容器只需要几秒钟 Docker常用命令 启动类命令 镜像命令 容器命令 docker images docker search --limit 5 redis docker pull redis:6.0.8 docker system df 查看镜像/容器/…...
扩散模型diffusion model用于图像恢复任务详细原理 (去雨,去雾等皆可),附实现代码
文章目录1. 去噪扩散概率模型2. 前向扩散3. 反向采样3. 图像条件扩散模型4. 可以考虑改进的点5. 实现代码1. 去噪扩散概率模型 扩散模型是一类生成模型, 和生成对抗网络GAN 、变分自动编码器VAE和标准化流模型NFM等生成网络不同的是, 扩散模型在前向扩散过程中对图像逐步施加噪…...
城市建设灯具网站/微信裂变营销软件
案例1:本地操作通过php操作rediswindows本地进行应用首先保证自己的环境已经安装上了redis,新建一个PHP文件编写 phpinfo();执行这个文件,看下会不会有redis的服务如果没有 请在环境中的php的php版本的文件夹下的ext文件夹下放入一个 php_red…...
长宁区公司网站建设/成品视频直播软件推荐哪个好用
参数是否必须说明appid是公众号的唯一标识secret是公众号的appsecretcode是填写第一步获取的code参数grant_type是填写为authorization_code前端可以调用这个接口,但是会跨域,所以这个接口一般是由后台进行封装的 你只需要把code传给后台,让后…...
赣州经开区疫情最新情况/浙江搜索引擎优化
给大家分享个自己制作的大美人桂纶镁的电子相册,希望大家喜欢!~下载地址转载于:https://blog.51cto.com/haiyang457/1127634...
广州网站建设互广/小说网站排名
---恢复内容开始--- 事件 好不容易回到正轨,好好学习,天天向上。今天写的是事件,感觉内容蛮多的,所以分了两篇写,主要写了事件流、事件处理程序、事件对象。恩,明天还会再有一篇,哈哈哈。我努力…...
做暧嗳网站/百度网络营销推广
本文来自项目作者评论区的投稿,内容转载自:LABLOG ,博主并未亲测!博主看了一下,操作难道略大,动手能力强的兄弟可以折腾一下!等待作者进一步优化普通用户的可操作性。本项目受 Oneindex启发&…...
wordpress多站点问题/嘉兴新站seo外包
作者 | 艾德宝器来源 | 数据管道摘要:本文从数据特征的分布分析、对比分析、统计分析、贡献度分析(帕累托分析)和相关性分析五大方面,识别数据分析的一些重要性质。拿到一份数据进行相关的模型训练之前,我们通常需要做数据清洗,得…...