事件流:冒泡流 捕捉流 dom事件流
html指定事件处理程序
事件处理程序:on+event:onclick;onmouse;onload;
问题:在没载入代码时,点击元素会报错。html与js高度耦合。
dome0级指定事件
element.onclick="";绑定
element.onclic=null; 删除
程序运行作用域在元素内部。
问题:不能同时绑定多个事件
dom2
addEventlistener();
removeEventener();
都有3个参数,element,event,false/ture.
event前没有on如:click;
false为冒泡阶段触发,true为捕获阶段。一般用false(兼容性;ie8之前不支持捕获)
参数相同才能删除,匿名函数不能删除。
优点:一个元素可添加多个事件,按添加顺序运行。
ie事件处理程序
attachEvent();detaEvent();
两个参数,处理程序前有on;程序运行作用域为全局(注意)
一个程序可绑定多个事件,运行顺序与绑定顺序相反。
跨浏览器事件处理程序。
var EventUtl={
addHandler:function(element,type,handler){
if(element.addEventListene){
element.addlEventListener(element,type,handler)
}else if(element.attachEvent){
element.attachEvent(element,"on"+type.handler)
}
else{
element["on"+type]=handler;
}
removeHandler:function(){
code...
}
}
}
缺陷:没有考虑到所用浏览器问题;ie中作用域的问题,dom0每个事件只支持一个事件处理函数。不过已经够用。