JavaScript事件(event)对象方法与属性
常用方法:
preventDefault()
阻止事件的默认行为(如阻止链接跳转、表单提交等)。
stopPropagation()
阻止事件冒泡(阻止事件向父元素传播)。
stopImmediatePropagation()
不仅阻止事件冒泡,还会阻止同一元素上的其他事件监听器执行。
composedPath()
返回事件的路径(即事件经过的 DOM 节点数组)。
常用属性:
target
触发事件的元素(事件发生的源头元素)。
currentTarget
当前正在处理事件的元素(绑定事件监听器的元素)。
type
事件类型(如 “click”、“submit” 等)。
bubbles
表示事件是否冒泡(布尔值)。
cancelable
表示事件是否可以取消默认行为(布尔值)。
defaultPrevented
表示是否调用了 preventDefault()(布尔值)。
eventPhase
表示事件当前所处的阶段(捕获阶段 1、目标阶段 2、冒泡阶段 3)。
isTrusted
表示事件是否由用户触发(true),还是由 JavaScript 代码触发(false)。
timeStamp
事件发生的时间戳(毫秒)。
不同事件类型的额外属性和方法
某些特定事件(如 MouseEvent、KeyboardEvent、TouchEvent)会有额外的属性和方法:
MouseEvent(鼠标事件):
clientX, clientY(鼠标相对于视口的坐标)
pageX, pageY(鼠标相对于文档的坐标)
button(按下的鼠标按钮,0=左键,1=中键,2=右键)
KeyboardEvent(键盘事件):
key(按下的键值,如 “Enter”)
code(物理按键代码,如 “KeyA”)
ctrlKey, shiftKey, altKey, metaKey(是否按下修饰键)
TouchEvent(触摸事件):
touches(当前所有触摸点)
changedTouches(发生变化的触摸点)