事件是可以被 JavaScript 侦测到的行为。 鼠标点击、鼠标移动、鼠标滚动、按下键盘,浏览器窗口大小的改变,网页加载完成,关闭网页等等都会发生事件。
事件流,描述的是页面中接受事件的顺序。
一个完整的JS事件流是从window开始,最后回到window的一个过程。
事件流被分为三个阶段(1~ 5)捕获过程、(5~ 6)事件触发过程、(6~ 10)冒泡过程。
事件冒泡:当一个元素接收到事件的时候 会把他接收到的事件传给自己的父级,一直到window。
如果它的父级元素也有某个事件函数,当执行完它的事件函数后,也就会执行它父级的事件函数。
事件委托利用了事件冒泡的特性。当事件在 DOM 树中的某个元素上触发时,该事件会沿着DOM树向上传播,直至根节点。在这个过程中,父元素可以捕获到子元素触发的事件。因此,当我们将事件处理程序绑定到父元素上时,父元素可以代理处理子元素上的事件,这就是事件委托的原理。