跳到主要内容

事件对象

event 对象暴露哪些通用成员?​

成员含义
type事件类型
target引起事件的元素
currentTarget当前处理事件的元素
eventPhase阶段: 1 捕获, 2 到达目标, 3 冒泡
bubbles是否冒泡
cancelable是否可取消默认行为
defaultPrevented是否已调用 preventDefault()
preventDefault()阻止默认动作
stopPropagation()阻止事件继续传播
stopImmediatePropagation()阻止传播并阻止同类型后续处理程序
composed是否能穿过 Shadow DOM 边界
timeStamp事件创建时间戳
isTrusted是否由用户操作触发

target、currentTarget 与 this 有什么区别?​

  • target: 引起事件的元素;
  • currentTarget: 正在处理该事件的元素, 即处理程序注册的位置;
  • this: 在处理程序内始终等于 currentTarget;
document.body.onclick = function (event) {
console.log(event.currentTarget === document.body); // true
console.log(this === document.body); // true
console.log(event.target === document.getElementById("myBtn")); // true; 事件来自按钮并冒泡到 body
};