firefox不支持attachEvent的解决方法
编程技术  /  houtizong 发布于 3年前   73
第一种方法,就是通过修改Object原型的方法来申明一个attachEvent:
Object.prototype.attachEvent = function(method,func){if(!this[method]){this[method]=func;}else{this[method]=this[method].attach(func);}}Function.prototype.attach=function(func){var f=this;return function(){f();func();}}
这样就可以像在ie中一样使用attachEvent方法:
$("pop_close").attachEvent("onclick",function(){
$("pop").style.display = "none";
return false;
});
第二种就是自己写一个函数,判断是否支持attachEvent,如果不支持则使用firefox中的addEventListener函数,下面是类似于jQuery中的写法:
var myAttachEvent = function(obj, evt, fn){if (obj.addEventListener)obj.addEventListener(evt, fn, false);else if (obj.attachEvent)obj.attachEvent("on" + evt, fn);}
调用的时候以函数方式调用:
myAttachEvent($("pop_close"), "click", function(){
$("pop").style.display = "none";
return false;
});
$函数:
window.$ = function(id){
return document.getElementById(id);
};
另:detachEvent()兼容方法:
function myDetachEvent (obj,evt,fn) {if (obj.removeEventListener)obj.removeEventListener(evt,fn,false);else if (obj.detachEvent)obj.detachEvent('on'+evt,fn);}
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接