这里有一份简洁的前端知识体系等待你查收,看看吧,会有惊喜哦~若是以为不错,恳求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除了可指定事件名,还能够跟自定义参数,作指定参数浏览器