当前位置: 首页 > news >正文

11月2日

1. 事件监听器 addEventListener

document.addEventListener(eventName, callbackFunction, options);
  • eventName:字符串,指定监听的事件类型。
  • callbackFunction:事件触发时执行的函数(此处为箭头函数 () => { ... })。
  • options(可选):配置对象,如 { once: true } 表示只执行一次。

2. 常见的监听事件类型

  • 鼠标事件(Mouse Events)
事件名触发时机
click鼠标点击(按下+释放)时触发
dblclick鼠标双击时触发
mousedown鼠标按下时触发
mouseup鼠标释放时触发
mousemove鼠标移动时持续触发
mouseenter鼠标进入元素范围时触发(不冒泡)
mouseleave鼠标离开元素范围时触发(不冒泡)
mouseover鼠标进入元素范围时触发(会冒泡)
mouseout鼠标离开元素范围时触发(会冒泡)
contextmenu右键菜单被打开时触发
  • 键盘事件(Keyboard Events)
事件名触发时机
keydown按下键盘按键时触发(持续触发)
keypress按下字符键时触发(已废弃)
keyup松开键盘按键时触发
  • 触摸事件(Touch Events,移动端)
事件名触发时机
touchstart手指触摸屏幕时
touchmove手指在屏幕上滑动时
touchend手指离开屏幕时
touchcancel系统取消触摸事件时(如来电中断)
  • 窗口与文档事件(Window & Document)
事件名触发时机
load页面加载完成
DOMContentLoadedDOM 结构加载完成(不等图片等资源)
resize窗口大小变化时
scroll页面滚动时
unload页面卸载前(现代浏览器多已禁用)
beforeunload页面即将关闭或刷新时(可提示保存)
visibilitychange页面可见性变化(切换标签页等)
  • 表单事件(Form Events)
事件名触发时机
input输入框内容变化时
change表单元素值改变且失焦时
focus元素获得焦点
blur元素失去焦点
submit表单提交时
reset表单重置时
  • 剪贴板事件(Clipboard Events)
事件名触发时机
copy复制操作时
cut剪切操作时
paste粘贴操作时
  • 媒体事件(Media Events)
事件名触发时机
play媒体开始播放
pause媒体暂停
ended播放结束
timeupdate播放时间更新
volumechange音量变化
loadeddata数据加载完成
  • 拖拽事件(Drag & Drop Events)
事件名触发时机
dragstart开始拖拽
drag拖拽中
dragenter拖拽目标进入可放置区域
dragover拖拽目标悬停在可放置区域上
dragleave拖拽目标离开可放置区域
drop拖拽目标放下时
dragend拖拽操作结束时
  • 自定义事件(Custom Events)

示例

const myEvent = new CustomEvent("myCustomEvent", { detail: { msg: "Hello" } });
document.addEventListener("myCustomEvent", e => console.log(e.detail.msg));
document.dispatchEvent(myEvent);

第一行

const myEvent = new CustomEvent("myCustomEvent", { detail: { msg: "Hello" } });

解释:
CustomEvent 是一个内置构造函数,用来创建自定义事件对象。
"myCustomEvent" 是事件名,可以随意取(只要你在监听时用同样的名字)。

第二个参数是一个配置对象 { detail: {...} },用于传递自定义数据。
这里创建了一个名为 "myCustomEvent" 的事件,并附带了一个自定义数据对象:

detail: { msg: "Hello" }

detail 就是自定义事件中存放额外数据的标准属性。

第二行

document.addEventListener("myCustomEvent", e => console.log(e.detail.msg));

解释:
这行代码为 document 注册了一个监听器,当 "myCustomEvent" 被触发时执行回调。
e 是事件对象。
e.detail 就是前面定义事件时传入的自定义数据对象 { msg: "Hello" }。
所以 e.detail.msg 取到 "Hello"。

第三行

document.dispatchEvent(myEvent);

解释:
dispatchEvent() 会触发事件。
当执行这行代码时:
浏览器在 document 上触发 "myCustomEvent"。
前面注册的监听器会被调用。

控制台输出:

Hello

总结执行流程

  1. 创建一个自定义事件对象(myEvent)并附带数据。
  2. 监听该事件。
  3. 触发该事件(dispatchEvent)。
  4. 监听器捕获事件并读取 detail 中的数据。
http://www.dtcms.com/a/562759.html

相关文章:

  • 兰州网站移动端优化兰州新站点seo加盟
  • 事务视图的知识总结
  • 高端的响应式网站建设公司镇江网络广播电视
  • 网站建设企业资质邀请推广app
  • 国内有什么网站山西通州集团网站建设
  • 富阳网站建设怎样公司手机网站开发招标书
  • 建立网站目录结构的原则郑州seo优化培训
  • 大连有几家做网站的公司管理系统开发
  • 做的网站在百度上搜不出来的那个网站做logo兼职
  • 淘宝客网站域名谁会做中装建设公司
  • 检测网站为什么打不开了上海广告公司大全
  • 做网站得多长时间企业网站是如何做的
  • html5网站建设公司东光县建设局网站
  • cesium126,230331,Visualize Per-Feature Metadata - 1:官方教程
  • 深圳外包公司网站怎么搭建局域网网站
  • 网站设计 加英文费用推广公司怎么找
  • 做淘客要有好的网站郑州制作网站推荐
  • python代码给文件批量重命名
  • 做电影网站只放链接算侵权吗安徽建设工程信息管理平台
  • 【正点原子 D20 WiFi 模块】介绍、配置、工程测试
  • Linux 下 tar 命令详解:归档与压缩完整指南
  • 戚墅堰做网站wordpress调用 自定义php代码
  • 巩义市住房和城乡规划建设局网站建站网站加盟
  • 有关网站建设的视频梅林固件 搭建wordpress
  • 网络层计算题
  • 网站建设要后台吗个人网站建设图片素材
  • 企业网站群建设怎么推广比较好
  • 网站建设收费标准方案wordpress 页面模板不显示不出来
  • WSL实践二
  • 网站建设交流推广上海人才招聘网官网