事件

事件概念:

  1. Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
  2. 事件通常与函数结合使用,函数不会在事件发生前被执行!
    事件是文档或者浏览器窗口中发生的,特定的交互瞬间。
  3. 典型的例子有:页面加载完毕触发load事件;用户单击元素,触发click事件。

事件流

概念:

事件流:描述的是从页面中接收事件的顺序。
DOM标准采用捕获+冒泡。两种事件流都会触发DOM的所有对象,从document对象开始,也在document对象结束。
JavaScript的事件

事件阶段

DOM标准规定事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段。

  1. 事件捕获阶段:
    实际目标div在捕获阶段不会接收事件。也就是在捕获阶 段,事件从document到html再到body就停止了。上图中为1~3.
  2. 处于目标阶段:事件在div上发生并处理。但是事件处理会被看成是冒泡阶段的一部分。
  3. 冒泡阶段:事件又传播回文档。

注意:

  1. 所有现代浏览器都支持事件冒泡,但在具体实现中略有差别:
    IE5.5及更早版本中事件冒泡会跳过元素(从body直接跳到document)。
    IE9、Firefox、Chrome、和Safari则将事件一直冒泡到window对象。
  2. IE9、Firefox、Chrome、Opera、和Safari都支持事件捕获。尽管DOM标准要求事件应该从document对象开始传播,但这些浏览器都是从window对象开始捕获事件的。
  3. 由于老版本浏览器不支持,很少有人使用事件捕获。建议使用事件冒泡。

捕获事件

在捕获型事件流中click事件传播顺序为document—><html>—><body>—><div>
JavaScript的事件

冒泡事件

在冒泡型事件流中click事件传播顺序为:<div>—><body>—><html>—>document
JavaScript的事件

相关文章:

  • 2021-11-08
  • 2021-06-22
  • 2021-08-13
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-02-16
  • 2022-02-10
  • 2022-12-23
  • 2021-11-27
  • 2022-12-23
相关资源
相似解决方案