事件对象的获取:
正常浏览器:事件处理函数的第一个形参
IE:需要寻找window的一个属性 event
兼容性处理:var e=eve||window.event
btn.onclick=function(eve){
var e=eve||window.event
}
键盘事件的事件对象——判断键盘按键的ASCII值
正常浏览器:事件对象.keyCode
IE:window.which
兼容性处理:var e=eve.keyCode || window.which
btn.onclick=function(eve){
var e=eve.keyCode||window.which
//逻辑短路的处理方式
}
添加事件监听事件
正常浏览器:元素.addEventListener(参数1,参数2,参数3)
参数1:事件类型
参数2:事件处理函数
参数3:布尔值
布尔值为false 默认 事件冒泡
布尔值为true 事件捕获
IE:元素.attachEvent(参数1,参数2)
IE没有参数2,只有事件冒泡
参数1:事件类型="on"+事件类型
参数2:事件处理函数
兼容性问题的处理:封装函数
function addEvent(ele,type,cb){
if(ele.addEvetListener){
ele.addEventListener(type,cb,false);
}else{
ele.attachEvent("on"+type,cb)}
删除监听事件
正常浏览器:元素.removeEvent(参数1,参数2,参数3)
参数1:事件类型
参数2:事件处理函数
参数3:布尔值
布尔值为false 默认 事件冒泡
布尔值为true 事件捕获
IE:元素.detachEvent(参数1,参数2)
IE没有参数2,只有事件冒泡
参数1:事件类型 ="on"+事件类型
参数2:事件处理函数
兼容性问题的处理:封装函数
function deleteEvent(ele,type,cb){
if(ele.removeEvent){
ele.removeEvent(type,cb,false);
}else{
ele.detachEvent("on"+type,cb)}
阻止默认事件
正常浏览器:事件对象.preventDefault()
IE:事件对象.returnValue=false;
处理兼容:
function stopDefault(e){
if(e.preventDefault){
e.preventDefault();}else{
e.returnValue=false;}