我也不知道这个博客能坚持多久,,复习事件处理 觉得觉得知识有点偏老,但是还是的有所了解为好
事件处理程序
- IE事件处理程序
attachEvent
IE8及更早版本 (兼容性较差,我本地调试并未成功。本地chrome为最新版本报错,IE11也报错。。戏剧的专门兼容IE的事件处理程序却自家不认识。)
解释,接受两个参数下面是例子
var btn = document.getElementById("myBtn");
btn.attachEvent("onclick",function(){
alert("clicked");
})
- DOM2级事件处理程序
var btn = document.getElementById("myBtn");
btn.addListener("click",function(){
alert("clicked");
},false);
- DOM0级事件处理程序
var btn = document.getElementById("myBtn");
btn.onclick = function(){
alert("clicked");
}
自我认知:我个人在chrome浏览器运行过了DOM2级和DOM0级可以运行成功.但是运行attachEvent
是报错。也不知道为什么。解决方法是使用dome2事件处理。
当让为了解决基本全平台浏览器兼容,可以尝试使用如下的代码
// 兼容性写法
var EventUtil = {
addHandler: function(element, type, handler) {
if (element.addEventListener) {
element.addEventListener(element, type, handler, false);
} else if (element.attachEvent) {
element.attachEvent('on' + type, handler);
} else {
element['on' + type] = null;
}
},
removeHandler: function(element, type, handler) {
if (element.removeHandler) {
element.removeHandler(element, type, handler, false);
} else if (element.detachEvent) {
element.attachEvent("on" + type, handler)
} else {
element['on' + type] = null;
}
}
}
不管是DOM2还是DOM0还是使用attachEvent,移除事件处理的时候。都不能使用匿名函数,移除函数需要使用引用函数或者直接定义函数名称。
事件对象Event
可以写一个点击事件,然后将该事件的event对象打印出来然后看得到相应的各项属性。如下代码在html中script标签中写。页面上要有一个可点击的ID为myBtn的元素哦。
var btn = document.getElementById("myBtn");
btn.addListener("click",function(event){
console.log(event);
},false)
打印出来的结果是这样子。
明晚再写具体这些参数的意思。一点一刻了,明天还要上班。准备洗完脚睡觉去。