一柴墩、事件級別
DOM0
element.onClick = function(){}
DOM2
element.addEventLisenter('click', function(){}, false);
DOM3? ? 增加了多種事件類型
element.addEventListener('keyup', function(){}, flase);
二忙厌、事件模型
捕獲? ? 自上而下
冒泡? ? 自下而上
三、事件流
事件捕獲階段(capture phase)
處于目標(biāo)階段(target phase)
事件冒泡階段(bubbling phase)
四江咳、事件捕獲具體流程
window → document?→ html?→ body?→ parent?→ child?→ target
五、Event對象常見應(yīng)用
event.preventDefault();? ? //阻止默認(rèn)事件
event.stopPropagation();? ? //阻止冒泡
event.stopImmediatePropagation();? ? //事件響應(yīng)優(yōu)先級
event.currentTarget; ? //當(dāng)前綁定事件的元素哥放,一般在事件委托時事件綁定在父元素
event.target;? ? //當(dāng)前被點擊的元素
六歼指、自定義事件
var event = new Event('custome');
element.addEventListener('customer', function(){
? ? console.log('custome');
});
element.dispatchEvent(event);