javascript(六)js事件绑定浏览器兼容解决方案 attachEvent addEventListener
16lz
2021-01-22
事件绑定
IE
绑定事件处理函数 attachEvent(event, fn)
解除绑定 detachEvent(event, fn)
dom
addEventListener(event,fn,false/ture)
removeEventListener(event,fn,false/ture)
浏览器兼容解决方案
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>事件绑定函数</title>
<script>
function myAddEvent(obj,sEvent,fn)
{
if(obj.attachEvent){//IE
obj.attachEvent('on'+sEvent,fn);
}
else{
obj.addEventListener(sEvent,fn,false);//其他浏览器
}
}
function a(){
alert('hello a!');
}
function b(){
alert('hello b!');
}
window.onload=function(){
var oBtn=document.getElementById('btn1');
myAddEvent(oBtn,'click',b);
myAddEvent(oBtn,'click',a);
}
</script>
</head>
<body>
<input id="btn1" type="button" value="aaa" />
</body>
</html>>
绑定事件与this
- IE
obj.attachEvent('onclick' a);
function a(){
alert(this==window);
}
结果为true
IE下的绑定事件this是window对象
- DOM
this 就是把那个对象
绑定事件与匿名函数
绑定匿名函数会无法删除