在 JavaScript 和浏览器中,绝大多数事件都会按照 DOM 事件流模型冒泡,即事件会从目标元素开始向上冒泡到它的父元素,并最终到达 document
元素。然而,也有一些事件是不会冒泡的。这些事件通常直接在目标元素上触发,并不会向上传播。
以下是一些不会冒泡的事件的示例:
-
focus
:当元素获得焦点时触发,例如通过键盘或鼠标点击。这是一个不会冒泡的事件。 -
blur
:当元素失去焦点时触发。这也是一个不会冒泡的事件。 -
focusin
:与focus
类似,但会在元素或其父元素上触发(冒泡),因此这个事件是特例。 -
focusout
:与blur
类似,但会在元素或其父元素上触发(冒泡),因此这个事件是特例。 -
load
:当图像、音频、视频或其他资源加载完成时触发。例如,在img
元素上触发的load
事件不会冒泡。 -
unload
:当页面即将被导航离开时触发。这通常用于执行清理工作,也不会冒泡。 -
stop
:通常与media
元素相关,例如audio
或video
元素。这是在媒体播放停止时触发的事件。 -
readystatechange
:当document
的readyState
改变时触发。这通常在页面加载时使用。 -
scroll
:当元素滚动时触发。这个事件在某些浏览器中可能会冒泡。
这些事件通常直接在目标元素上触发,并且不会传播到父元素上。