1、事件的三个阶段:捕获、目标、冒泡(低版本的IE不支持捕获阶段)
2、传统、IE、W3C的绑定、解绑等事件略有不同
3、addEventListener()的第三个参数的值:false (冒泡执行) , true (捕获执行),默认为false
js事件模型、代理及委托
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function Event(){
this.addHander = function(ele,type,fn){
if(document.addEventListener){//ie9、ff、sa、op、ch
ele.addEventListener(type,fn,false)
}else if(document.attachEvent){//ie、op
ele.attachEvent('on'+type,fn)
}else{//传统
ele['on'+type] = fn;
}
}
this.delHander = function(ele,type,fn){
if(document.removeEventListener){
ele.removeEventListener(type,fn,false)
}else if(document.detachEvent){
ele.detachEvent('on'+type,fn)
}else{
ele['on'+type] = null;
}
}
this.getEvent = function(event){
return event ? event:window.event;
}
this.getTarget = function(event){
return event.target || event.srcElement;
}
this.preventDefault = function(event){
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue = false;
}
}
this.stopPropagation = function(event){
if(event.stopPropagation){
event.stopPropagation()
}else{
event.cancelBubble = false;
}
}
}
本文标题:js事件模型、代理及委托
文章作者:xiaoqi
发布时间:2017-03-17, 10:06:23
最后更新:2017-03-18, 00:16:21
原始链接:http://m.xiaoqi888.cn/2017/03/17/107.html/
许可协议: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。