南大软院大神养成计划——第十一天
2015-11-26 21:50
183 查看
今天是南大软院大神养成计划的第十一天,最近学习速度有点慢,主要是因为还参加了数学建模的比赛,所以不得不先把主要精力投入到数学建模比赛中,所以最近的博客都有点小水了。
今天学习的主要内容还是DOM事件探秘里的内容,感觉这部分的内容好多了,尤其是第四章的内容,加起来大约有100分钟了吧,所以准备明天看,今天就学习了一章的内容,今天主要学习了第三章——事件对象。
首先说说什么是事件对象,在触发dom对象的时候都会产生一个事件对象,这事件对象包含所有跟事件有关的信息,包括导致事件的元素,事件的类型还有跟事件特定的信息,比如键盘触发的事件对象会保存键盘输入的是什么键,比如a,b等,而鼠标则是移动或者点击等,这些都是通过事件对象event获取的。
先说说DOM中的事件对象,dom事件对象包含
(1)、type:获取事件类型
(2)、target:事件目标
(3)、stopPropagation() 阻止事件冒泡
(4)、preventDefault() 阻止事件的默认行为
IE的事件对象和DOM事件对象有点不一样,所以我们在编写事件对象的时候为了考虑兼容性要自己封装一个函数,用于获取事件对象里的信息。
IE中的事件对象
(1)、type:获取事件类型
(2)、srcElement:事件目标
(3)、cancelBubble=true阻止事件冒泡
(4)、returnValue=false阻止事件的默认行为
然后我们看一下兼容性的代码是怎么样的?
var eventUtil={
// 添加句柄
addHandler:function(element,type,handler){
if(element.addEventListener){
element.addEventListener(type,handler,false);
}else if(element.attachEvent){
element.attachEvent('on'+type,handler);
}else{
element['on'+type]=handler;
}
},
// 删除句柄
removeHandler:function(element,type,handler){
if(element.removeEventListener){
element.removeEventListener(type,handler,false);
}else if(element.detachEvent){
element.detachEvent('on'+type,handler);
}else{
element['on'+type]=null;
}
},
getEvent:function(event){
return event?event:window.event;
},//在一些低版本浏览器,不支持直接调用event,所以我们要判断浏览器是否支持event,不支持我们就用window.event
getType:function(event){
return event.type;
},
getElement:function(event){
return event.target || event.srcElement;
},
preventDefault:function(event){
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue=false;
}
},
stopPropagation:function(event){
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble=true;
}
}
}
这就是今天学习的内容,今天实在是太忙了,期待明天的学习.
今天学习的主要内容还是DOM事件探秘里的内容,感觉这部分的内容好多了,尤其是第四章的内容,加起来大约有100分钟了吧,所以准备明天看,今天就学习了一章的内容,今天主要学习了第三章——事件对象。
首先说说什么是事件对象,在触发dom对象的时候都会产生一个事件对象,这事件对象包含所有跟事件有关的信息,包括导致事件的元素,事件的类型还有跟事件特定的信息,比如键盘触发的事件对象会保存键盘输入的是什么键,比如a,b等,而鼠标则是移动或者点击等,这些都是通过事件对象event获取的。
先说说DOM中的事件对象,dom事件对象包含
(1)、type:获取事件类型
(2)、target:事件目标
(3)、stopPropagation() 阻止事件冒泡
(4)、preventDefault() 阻止事件的默认行为
IE的事件对象和DOM事件对象有点不一样,所以我们在编写事件对象的时候为了考虑兼容性要自己封装一个函数,用于获取事件对象里的信息。
IE中的事件对象
(1)、type:获取事件类型
(2)、srcElement:事件目标
(3)、cancelBubble=true阻止事件冒泡
(4)、returnValue=false阻止事件的默认行为
然后我们看一下兼容性的代码是怎么样的?
var eventUtil={
// 添加句柄
addHandler:function(element,type,handler){
if(element.addEventListener){
element.addEventListener(type,handler,false);
}else if(element.attachEvent){
element.attachEvent('on'+type,handler);
}else{
element['on'+type]=handler;
}
},
// 删除句柄
removeHandler:function(element,type,handler){
if(element.removeEventListener){
element.removeEventListener(type,handler,false);
}else if(element.detachEvent){
element.detachEvent('on'+type,handler);
}else{
element['on'+type]=null;
}
},
getEvent:function(event){
return event?event:window.event;
},//在一些低版本浏览器,不支持直接调用event,所以我们要判断浏览器是否支持event,不支持我们就用window.event
getType:function(event){
return event.type;
},
getElement:function(event){
return event.target || event.srcElement;
},
preventDefault:function(event){
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue=false;
}
},
stopPropagation:function(event){
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble=true;
}
}
}
这就是今天学习的内容,今天实在是太忙了,期待明天的学习.
相关文章推荐
- ImageView加载图片的几种方式
- linux应用编程笔记(13)信号量同步编程
- Go struct
- Unity3D 扩展 Scene
- ural 1273. Tie
- Delphi SysErrorMessage 函数和系统错误信息表
- 树莓派使用上RTC实时时钟(DS3231,I2C接口)
- Android学习系列(1)--为App签名(为apk签名)
- nyoj--767--因子和(模拟)
- 数据结构——查找和删除指定连接点(java实现)
- UI错误集
- 南阳理工ACM1076--方案数量
- 南阳理工ACM1076--方案数量
- WEB笔记-5、字体和文本
- nyoj--767--因子和(模拟)
- 网络链路层
- int function() const; 怎么理解?
- 【SSH项目实战】国税协同平台-29.投诉受理查询
- 104 User SCOTT wants to back out the transactions on the REGIONS table in his schema. As a DBA, whic
- ural 1272. Non-Yekaterinburg Subway