封装绑定事件的方法addEvent()
function addEvent(elem,type,handle){
if(elem.addEventListener){ //可绑定多个方法
elem.addEventListener(type,handle,false)
}else if(elem.attachEvent){ //兼容ie 不仅可绑定多个方法,
//同样的方法名都可以绑定多个
elem.attachEvent('on' + type, function(){
handle.call(elem); //ie中此方法指向window,因此需要改变一下
})
}else{
elem['on' + type] = handle; //通用 但只能绑定一个方法
}
}
使用时只需:
addEvent(div1, ‘click’, fun);
阻止默认事件:
1、return false 以对象属性方式注册的事件才生效
例如:
document.oncontextmenu = function(){ //右键菜单事件
console.log("a");
return false;
}
2、e.preventDefault()
document.oncontextmenu = function(e){ //w3c标准 ie9以下不兼容
e.preventDefault();
}
3、e.returnValue = false
document.oncontextmenu = function(e){ //兼容ie
e.returnValue = false;
}
阻止冒泡:
1、event.stopPropagation() w3c标准 ie9以下不兼容
2、event.cancleBubble = true ie独有方法
事件源对象:
1、event.target 火狐
2、event.srcElement ie
谷歌两个都兼容