事件捕获与事件冒泡

事件冒泡和事件捕获最初的产生是由于下面这种情况:

<span style="font-size:18px;"><body>
	<div id="outer">
		<p id="inner">click me~</p>
	</div>
</body></span>


如果“div”和“p”都有一个事件点击函数,那么应该先执行哪一个呢?

如果先执行inner就是事件冒泡,先执行outer就是事件捕获。

而这两种完全不同的思想就是由著名的微软和网景提出来的!

如果事件的发生顺序为:p-> div-> body-> html-> document就是事件冒泡

如果事件的发生顺序为:document-> html-> body-> div-> p就是事件捕获


那如何应用或者说解决这种对立的情况呢?

           别急,还有addEventListener第三个参数

在“DOM2级事件”中规定的事件流同时支持了事件捕获阶段和事件冒泡阶段,addEventListener方法完美的帮我们解决了是想冒泡还是捕获~~

  element.addEventListener(event, function, useCapture)

第一个参数是需要绑定的事件,第二个参数是触发事件后要执行的函数。而第三个参数的默认值为false,表示在事件冒泡的阶段调用时间处理函数,如果参数为true,则表示在事件捕获的阶段调用处理函数


你可能感兴趣的:(事件捕获与事件冒泡)