js绑定事件方法:addEventListener的兼容问题
2024-09-01 09:54:47
js的事件绑定方法中,ie只支持attachEvent,而FF和Chrome只支持addEventListener;严格来说:addEventListener只有IE9以上版本的IE浏览器上能够兼容,IE8或者更低的版本是不支持,这时要想能够兼容IE低版本浏览器就需要判断当前浏览器然后针对不同浏览器决定用哪一个。
attachEvent和addEventLitener的不同之处是第二个参数事件名要多加个“on”,比如‘onclick’,而且他的this 指向的是window,在使用的时候需要改变this指向。下面就是一个兼容的写法:
var Event = {};
Event.addEvents = function(target,eventType,handle){
if(document.addEventListener){
Event.addEvents = function(target,eventType,handle){
target.addEventListener(eventTypt,handle,false);
};
}else {
Event.addEvents = function(target,eventType,handle){
target.attachEvent('on'+eventType,function(){
handle.call(target,arguments);
});
}; }
Event.addEvents(target,eventType,handle); }
调用方法:
Event.addEvents(document,"click",function(){
alert(ok)
});
最新文章
- iOS学习笔记——多控制器管理
- 选项卡 tab切换
- ThinkPHP 3.2.3 自动加载公共函数文件的方法
- js设计模式(7)---装饰者模式
- Qt对话框QDialog
- 理解cookie的path和domain属性(转)
- excel中自动变为插入语句的写法
- Head First设计模式之模板方法模式
- hdu 5458 Stability(树链剖分+并查集)
- ROS机器人编程实践----琐碎知识点
- consul - 基础
- .net ORM框架(Dapper简单应用)
- Xshell配置密钥公钥(Public key)与私钥(Private Key)登录
- python的type class
- ora-12899解决方法
- 【转】Android 获取本机号码(收集)
- 【经验】STL的list vector在iterator迭代器的循环中 使用erase 造成的BUG
- rabbitMQ rabbitmq-server -detached rabbitmq-server -detached rabbitmq-server -detached
- html 获取鼠标左键事件,滚轮点击事件,右键点击事件
- java把流抛给浏览器下载时,当下载的文件文件名为中文时,出现中文名被替换为“----------”的情况