在浏览器发展的过程中,开发团队遇到了一个问题。那就是页面中的哪一部分拥有特定的事件?
可以想象画在一张纸上的一组同心圆,如果你把手指放在圆心上,那么你的手指指向的其实不是一个圆,而是纸上所有的圆。放到实际页面中就是,你点击一个按钮,事实上你还同时点击了按钮所有的父元素。
开发团队的问题就在于,当点击按钮时,是按钮最外层的父元素先收到事件并执行,还是具体元素先收到事件并执行?所以这儿引入了事件流的概念。
事件流所描述的就是从页面中接受事件的顺序。
默认是事件冒泡:即目标元素绑定事件后,逐渐冒泡到父节点
事件捕获:目标元素绑定事件,其父级元素先更早的接收到事件,具体元素最后接收到事件
目标元素的事件向其子元素传播,只是事件在 目标元素 和 其父元素 的接受的先后顺序
元素本身就有事件,只不过没有相应的程序执行