這裏有一份簡潔的前端知識體系等待你查收,看看吧,會有驚喜哦~若是以爲不錯,懇求star哈~html
// DOM0
element.onclick = function () {}
------------------------------------------
// DOM2
element.addEventListener('click', function () {
//false冒泡階段,true捕獲階段
}, false);
------------------------------------------
// DOM3(增長了事件類型)
element.addEventListener('keyup', function () {
}, false);
複製代碼
注:DOM1沒註冊跟事件相關的東西前端
var myEventUtil = {
addEvent : function (ele,event,func) {
//用能力檢測進行跨瀏覽器兼容處理
if(ele.addEventListener) {
//false表示冒泡事件模型
ele.addEventListener(event,func,false);
}else if(ele.attachEvent){
ele.attachEvent('on'+event,func);
}else{
ele['on'+event]=func;
}
},
delEvent : function (ele,event,func) {
if(ele.removeEventListener){
ele.removeEventListener(event,func,false);
}else if(ele.detachEvent){
ele.detachEvent('on'+event,func);//IE
}else {
ele['on'+event]=null;
}
}
}
複製代碼
捕獲、冒泡git
window => document => html => body => ... => 目標元素github
var event = new Event('custome');
dom.addEventListener('custome', funcion () {});
dom.dispatchEvent(event);
複製代碼
Event 與 CustomEvent惟一區別:CustomEvent除了可指定事件名,還能夠跟自定義參數,作指定參數瀏覽器