参考原文:https://my.oschina.net/u/1454562/blog/205010
event事件传播有三个阶段:捕获阶段、目标阶段、冒泡阶段
target.addEventListener(type, listener[, options]);
true表示该元素在事件的“捕获阶段”(由外往内传递时)响应事件;
false表示该元素在事件的“冒泡阶段”(由内向外传递时)响应时间。
html代码:
<div id=\'d\'> <p id=\'p\'> <span id=\'s\'>Click Me!</span> </p> </div>
js代码:
var div = document.getElementById(\'d\'); var p = document.getElementById(\'p\'); var span = document.getElementById(\'s\'); function onClickFn(event) { var tagName = event.currentTarget.tagName; var phase = event.eventPhase; console.log(tagName, phase); } div.addEventListener(\'click\', onClickFn, true); p.addEventListener(\'click\', onClickFn, true); span.addEventListener(\'click\',function(){ console.log(\'span\') },true)
如果true:
如果为false: