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

DOM事件

DOM事件:DOM 事件是指浏览器中用户与页面交互浏览器自身行为发生时触发的信号,你可以通过 JavaScript 监听这些信号并执行相应的代码。

通俗理解

把 DOM 事件想象成"通知":

场景触发的"通知"(事件)
用户点击按钮click
鼠标移到一个元素上mouseenter
键盘按下一个键keydown
页面加载完成load
输入框内容改变input/change
表单提交submit

基本用法(三种绑定方式)

1. HTML 属性方式(不推荐)

html

<button οnclick="alert('点击了')">点我</button>

2. DOM 属性方式

javascript

const btn = document.getElementById('myBtn'); btn.onclick = function() { alert('点击了'); };

3. 标准方式:addEventListener(推荐)

javascript

const btn = document.getElementById('myBtn'); btn.addEventListener('click', function() { alert('点击了'); });

🔄 事件流(捕获 → 目标 → 冒泡)

当你点击一个嵌套的元素时,事件会经历三个阶段:

text

1. 捕获阶段(从外到内) document → html → body → div → button 2. 目标阶段(到达目标) button(被点击的元素) 3. 冒泡阶段(从内到外) button → div → body → html → document

html

<div id="parent"> <button id="child">点我</button> </div>

javascript

// 默认是冒泡阶段(第三个参数 false 或不写) document.getElementById('parent').addEventListener('click', function() { console.log('父元素被点击了'); }, false); // false = 冒泡阶段 // 捕获阶段(第三个参数 true) document.getElementById('parent').addEventListener('click', function() { console.log('父元素捕获到了'); }, true); // true = 捕获阶段

🚫 阻止事件行为

方法作用
event.stopPropagation()阻止事件继续传播(阻止冒泡或捕获)
event.preventDefault()阻止元素的默认行为(如链接跳转、表单提交)

javascript

document.getElementById('link').addEventListener('click', function(event) { event.preventDefault(); // 阻止跳转 event.stopPropagation(); // 阻止冒泡 console.log('点击了链接,但没有跳转'); });

🧩 常见 DOM 事件分类

类别事件名触发时机
鼠标click,dblclick,mousedown,mouseup,mousemove,mouseenter,mouseleave鼠标操作
键盘keydown,keyup,keypress键盘操作
表单input,change,submit,focus,blur表单交互
窗口load,resize,scroll,unload页面/窗口变化
触摸touchstart,touchmove,touchend移动端触屏
剪贴板copy,cut,paste复制/粘贴
http://www.jsqmd.com/news/1251591/

相关文章:

  • 亲身探访天津劳力士售后服务中心|完整网点地址与服务电话(2026年7月最新) - 劳力士服务中心
  • MSPM0 CRC硬件加速器:从原理到LoRa数据包校验实战
  • 卡地亚香港售后通知:2026年7月最新网点地址+客户服务电话核验 - 卡地亚服务中心
  • Java工程师如何用大模型技术升级后台系统
  • 数字人推荐:多平台分发怎么提高效率
  • TPS657095 PMU实战:从EVM评估到嵌入式相机电源设计优化
  • 2026微电子展哪家好?协会主办技术盛会,微电子展会价值解读 - 品牌深度评测
  • LLM请求-响应循环全解析:从Token化到错误处理的完整指南
  • Aeon.WorX通用对象生命周期管理系统:从PLM原理到微服务实践
  • 基于Markdown与MCP协议的项目管理平台实战指南
  • 2026年7月亲身到店探访苏州亨得利名表服务中心|最新维修地址与24小时热线 - 亨得利官方博客
  • TSC2117音频编解码器SPI与I2C接口配置详解及嵌入式音频开发实践
  • 2026深圳坪山解除税务风险/出口退税哪家口碑好|深圳坪山解除税务风险/出口退税机构推荐,云掌柜财税集团有限公司专业定制财税方案 - mobible
  • 网盘资源下载与本地管理:从文件完整性检查到高效组织策略
  • 2026年7月卡地亚中国专柜热线最新通知,服务专线重磅发布公告 - 卡地亚官方售后中心
  • GitHub漏洞赏金计划大改:固定赏金取代浮动机制,VIP通道赏金翻四倍
  • 在家就能做的副业首选:AI 写小说赚钱!日更万字、平台分成、长期躺赚~(内附番茄七猫过签秘籍)
  • Java后端转型AI Agent开发:800次投递的实战经验
  • AI文献工具实用指南:高效赋能学术研究与文献整理的智能辅助工具
  • AI编程工具链演进全景图(2024最新实测数据+头部企业落地案例)
  • UE5字符串性能深度剖析:FString、FName、FText内存与性能对比
  • AI智能体技术解析与学习路径指南
  • 2026黑龙江卷帘门/车库门厂家避坑指南:5个挑选要点,帮你绕开90%的坑 - mobible
  • 2026深圳福田税务异常解除/代理记账哪家好|深圳福田财税服务口碑推荐,云掌柜财税集团有限公司合规税筹落地专家 - mobible
  • 2026 视频去水印在线操作方法 风险提醒与合法去除视频水印方式指南 - 免费软件工具方法教程
  • 一半在自家机房,一半在云上:混合云组网到底解决了什么?
  • 斯坦利杯冠军交互式网络图:数据可视化与前端开发实践
  • 腾讯元宝表格回答导出Excel:保留表头、数据结构与多轮补充
  • Qualys曝RefluXFS高危漏洞:XFS文件系统暗藏九年“后门“,千万Linux服务器面临root提权风险
  • 2026年万科胤樾项目如何甄选专业的门店设计服务团队 - 装修教育财税推荐2026