在 JavaScript 中处理事件的优先顺序是什么?
以下是按字母顺序排列的事件……
- onabort - 图像加载中断
- onblur - 元素失去焦点
- onchange - 用户更改字段的内容
- onclick - 鼠标点击一个对象
- ondblclick - 鼠标双击一个对象
- onerror - 加载文档或图像时发生错误
- onfocus - 一个元素获得焦点
- onkeydown - 按下键盘键
- onkeypress - 按下或按住键盘键
- onkeyup - 键盘按键被释放
- onload - 页面或图像加载完成
- onmousedown - 鼠标按钮被按下
- onmousemove - 鼠标被移动
- onmouseout - 鼠标离开元素
- onmouseover - 鼠标移到一个元素上
- onmouseup - 释放鼠标按钮
- onreset - 重置按钮被点击
- onresize - 调整窗口或框架的大小
- onselect - 文本被选中
- onsubmit - 提交按钮被点击
- onunload - 用户退出页面
它们在事件队列中的处理顺序是什么?
我相信优先级不是先进先出(FIFO)。
原文由 dacracot 发布,翻译遵循 CC BY-SA 4.0 许可协议
据我所知,这在过去并没有明确定义。不同的浏览器可以自由地实现他们认为合适的事件排序。虽然大多数对于所有实际目的都足够接近,但已经存在并将继续存在一些奇怪的边缘情况,其中浏览器有些不同(当然,还有更多情况是某些浏览器 根本 无法发送某些事件)。
也就是说, HTML 5 草案建议 确实尝试指定事件将如何排队和分派 - 事件循环:
请注意最后一点:由浏览器实现决定将哪些事件组合在一起并按顺序处理,以及赋予任何特定类型事件的优先级。因此,没有理由期望所有浏览器现在或将来都以固定顺序分派 所有 事件。