事件流
坑军之王
147
在JavaScript中,事件流指的是DOM事件流。当一个事件发生时,不仅产生事件的元素响应,其他元素也可以响应。由于DOM模型是一个树形结构,其中的HTML元素上产生一个事件时,该事件也会在DOM树中元素节点和根节点之间按照特定的顺序传播,路径所经过的节点都会收到该事件,这个过程就是DOM的事件流。其有两种方式:
冒泡事件
在JavaScript中,默认使用冒泡事件。当时间在某一元素上触发时,事件将沿着各个节点的父节点自下而上穿过各个DOM节点,这种方式称为冒泡事件方式。
在冒泡的过程中,在任何时候都可以终止事件的冒泡。如果不终止冒泡,事件会沿着DOM节点一直向上直到DOM的根节点。
捕获事件
与冒泡事件相反,捕获事件的传播从DOM树的根节点开始,而不是从触发事件的目标元素开始。事件是从目标元素的所有祖先元素依次向下传递。在这个过程中事件会从DOM树的根元素到事件目标元素之间各个继承之间的元素所捕获。