js绑定事件方法:addEventListener与attachEvent的不同浏览器的兼容性写法
来源:互联网 发布:java写一个简单的接口 编辑:程序博客网 时间:2024/04/30 06:04
js的事件绑定方法中,ie只支持attachEvent,而FF和Chrome只支持addEventListener,所以就必须为这两个方法做兼容处理,原理是先判断attachEvent只否为真(存在),如果为真则用attachEvent()方法,否则的话就用addEventListener()。
另外,为了避免每次绑定事件时都要做判断,可以封装一个函数myAddEvent(obj,ev,fn){}。
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>绑定</title>
<script>
window.onload = function()
{
var oBtn = document.getElementById("btn1");
//IE attachEvent(事件名,函数),此方法只有ie支持,FF和Chrome均不支持
/*oBtn.attachEvent("onclick",function()
{
alert("a");
});
oBtn.attachEvent("onclick",function()
{
alert("b");
})*/
//FF和Chrome addEventListener(事件名,函数),此方法ie不支持
/*oBtn.addEventListener("click",function()
{
alert("a");
});
oBtn.addEventListener("click",function()
{
alert("b");
})*/
//兼容写法:if/else判断
/*if(oBtn.attachEvent)
{
oBtn.attachEvent("onclick",function()
{
alert("a");
});
oBtn.attachEvent("onclick",function()
{
alert("b");
})
}
else
{
oBtn.addEventListener("click",function()
{
alert("a");
},false);
oBtn.addEventListener("click",function()
{
alert("b");
},false)
}*/
//另外,还可以把这个兼容写法封装成一个函数,这样就不用每次绑定事件时都要判断一下
function myAddEvent(obj,ev,fn) //obj为要绑定事件的元素,ev为要绑定的事件,fn为绑定事件的函数
{
if(obj.attachEvent)
{
obj.attachEvent("on" + ev,fn);
}
else
{
obj.addEventListener(ev,fn,false);
}
}
myAddEvent(oBtn,"click",function()
{
alert("a");
})
myAddEvent(oBtn,"click",function()
{
alert("b");
})
}
</script>
</head>
<body>
<input id="btn1" type="button" value="按钮"/>
</body>
</html>
0 0
- js绑定事件方法:addEventListener与attachEvent的不同浏览器的兼容性写法
- js attachEvent ,addEventListener 和 on 绑定事件的区别
- 原生JS绑定事件的兼容性写法与绑定事件的几种方法
- JavaScript中,四种事件绑定方法及attachEvent与addEventListener的区别
- Javascript关于绑定事件方法attachEvent和addEventListener区别与兼容写法
- js绑定事件(attachEvent、addEventListener)传参
- JS事件绑定addEventListener 和 attachEvent
- JS: .onClick attachEvent和addEventListener三者面对不同浏览器的区别
- JS之事件绑定(addEventListener、removeEventListener、attachEvent、detachEvent的用法和区别)
- addEventListener和attachEvent以及事件句柄绑定的区别
- 关于原生事件绑定中attachEvent与addEventlistener中兼容性以及attachEvent函数中this指代window问题
- js事件处理方法addEventListener和attachEvent
- 【js】addEventListener/attachEvent 与内联事件
- JS添加/绑定事件监听函数并传参数attachEvent和addEventListener兼容个浏览器
- javascript(六)js事件绑定浏览器兼容解决方案 attachEvent addEventListener
- js添加事件attachEvent和addEventListener的用法
- js 添加事件 attachEvent 和 addEventListener 的用法
- js 添加事件 attachEvent 和 addEventListener 的用法
- 我同意条款---CheckBox的isChecked属性的使用
- Sql中datatime类型数据转成特定格式的string
- Centos系统查找软件url
- Qt 5.3 下OpenCV 2.4.11 开发(10)使用鼠标回调函数对视频帧截图
- NYOJ 32 组合数(DFS)
- js绑定事件方法:addEventListener与attachEvent的不同浏览器的兼容性写法
- PHP中各种数据类型的区别和转换方法
- Like 的用法
- 获得计算机名、用户名
- Java实现数据结构之二叉查找树
- UNIX网络编程卷一:第六章 I/O 复用 select, poll
- IntentServie源码解析
- 嵌入式uC/OS-2的任务管理
- Highchart构建横向误差条图