js Event 事件对象 冒泡与捕获机制

MDN Event

Event 事件对象

鼠标 / 键盘属性

属性描述
altKey“ALT” 是否被按下
button哪个鼠标按钮被点击
clientX鼠标指针的相对容器水平坐标
clientY鼠标指针的相对容器垂直坐标
ctrlKey“CTRL” 键是否被按下
metaKey“meta” 键是否被按下
relatedTarget返回与事件的目标节点相关的节点 返回离开的父节点
screenX鼠标指针的相对屏幕水平坐标
screenY鼠标指针的相对屏幕垂直坐标
shiftKey“SHIFT” 键是否被按下

要区分 targetcurrentTarget

实例属性

target
currentTarget
type

bubbles 该事件是否会在 DOM 中冒泡
defaultPrevented 表示 event.preventDefault() 方法是否取消了事件的默认行为

实例方法

event.preventDefault() 取消事件的默认行为
如按键、点击、元素的默认处理

event.stopPropagation() 阻止 捕获 和 冒泡 阶段中当前事件的进一步传播。
event.stopImmediatePropagation 阻止相同事件的其他事件监听器的执行

监听事件

事件监听器 = 事件处理器

EventTarget.addEventListener(事件名, 处理函数, 是否捕获模式)
// on事件 = xxx

EventTarget.removeEventListener(事件名, 处理函数)

事件派发

脚本触发事件

 EventTarget.dispatchEvent(事件名)

此事件的 taget 就是 EventTarget
在这里插入图片描述

冒泡与捕获

嵌套的元素事件处理函数可能会依次被触发,触发的顺序取决于 事件冒泡 和 事件捕获 在每一个元素上的设置情况。

嵌套元素 同时触发相同事件 ,事件执行的逻辑
有 冒泡与捕获 两种机制

  • 冒泡 自 target 逐级向上传递
  • 捕获 自 html 逐级向下 传递到 target

在现代浏览器中,默认情况下,所有事件处理程序都在冒泡阶段进行注册。
但有时候并不希望事件冒泡(事件影响到上级) 可使用 stopPropagation() / stopImmediatePropagation()

事件委托

posted @   海胆Sur  阅读(12)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示