JavaScript 的事件流模型有哪些?

如何阻止事件冒泡?

function stopBubble(e) {
  if (e.stopPropagation) {
    e.stopPropagation()
  } else {
    window.event.cancelBubble = true;
  }
}

如何阻止事件默认行为?

function stopDefault(e) {
  if (e.preventDefault) {
    e.preventDefault();
  } else {
    window.event.returnValue = false;
  }
}

⭐ 什么是事件委托?

当子元素都需要绑定相同事件时,可以将事件绑在父元素上,优点有:

鼠标事件有哪些?

事件 说明
click 单机鼠标左键触发
dbclick 双击鼠标左键触发
mousedown 单机鼠标任意一个按键都触发
mouseup 松开任意鼠标按键时触发
mouseover 鼠标指针出某个元素到另一个元素上时触发
mouseout 鼠标指针位于某个元素上且将要移出元素边界时触发
mousemove 鼠标在某个元素上时持续发生
mouseenter 鼠标进入某个元素边界时触发
mouseleave 鼠标离开某个元素边界时触发

键盘事件有哪些?

注明:event 对象上的 keyCode 属性,是按下的按键的 ASCLL 值,通过这个值可辨别是按下哪个按键。ASCLL 表在此 ASCII 码一览表,ASCII 码对照表

事件 说明
onkeydown 某个键盘按键被按下时触发
onkeyup 某个键盘按键被松开时触发
onkeypress 某个按键被按下时触发,不监听功能键,如ctrl,shift

触摸事件有哪些?

移动端的触摸事件与鼠标事件不同,它们专为触摸屏设备设计,常用于处理手指的滑动、点击等交互。以下是常见的移动端触摸事件,按照名称、触发条件和用途进行了整理。

事件名称 触发条件 用途
touchstart 当手指触摸屏幕时触发。 记录初始的触摸点,开始监测触摸操作。
touchmove 当手指在屏幕上滑动时持续触发。 检测触摸点的移动,用于拖动、滑动等操作。
touchend 当手指离开屏幕时触发。 结束触摸事件,处理抬手后的操作,比如点击。
touchcancel 触摸事件被中断时触发,例如弹窗出现或触摸点离开屏幕。 取消触摸操作的处理,通常用于清理数据。