驱动事件的addEvent.js代码


Posted in Javascript onMarch 27, 2007
Array.prototype.inArray = function (value) {  
    var i;  
    for (i=0; i < this.length; i++) {  
        if (this[i] === value) {  
            return true;  
        }  
    }  
    return false;  
};  function addEvent( obj, type, fn ) {  
    if (obj.addEventListener) {  
        obj.addEventListener( type, fn, false );  
        EventCache.add(obj, type, fn);  
    }  
    else if (obj.attachEvent) {  
        obj["e"+type+fn] = fn;  
        obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }  
        obj.attachEvent( "on"+type, obj[type+fn] );  
        EventCache.add(obj, type, fn);  
    }  
    else {  
        obj["on"+type] = obj["e"+type+fn];  
    }  
}  
var EventCache = function(){  
    var listEvents = [];  
    return {  
        listEvents : listEvents,  
        add : function(node, sEventName, fHandler){  
            listEvents.push(arguments);  
        },  
        flush : function(){  
            var i, item;  
            for(i = listEvents.length - 1; i >= 0; i = i - 1){  
                item = listEvents[i];  
                if(item[0].removeEventListener){  
                    item[0].removeEventListener(item[1], item[2], item[3]);  
                };  
                if(item[1].substring(0, 2) != "on"){  
                    item[1] = "on" + item[1];  
                };  
                if(item[0].detachEvent){  
                    item[0].detachEvent(item[1], item[2]);  
                };  
                item[0][item[1]] = null;  
            };  
        }  
    };  
}();  
addEvent(window,'unload',EventCache.flush);

Javascript 相关文章推荐
jquery插件validate验证的小例子
May 08 Javascript
在父页面得到zTree已选中的节点的方法
Feb 12 Javascript
js 实现数值的千分位及保存小数方法(推荐)
Aug 01 Javascript
AngularJS指令详解及示例代码
Aug 16 Javascript
浅谈js键盘事件全面控制
Dec 01 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
Jan 17 Javascript
Bootstrap导航中表单简单实现代码
Mar 06 Javascript
Vue2.0实现组件数据的双向绑定问题
Mar 06 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
May 13 Javascript
详解vue 项目白屏解决方案
Oct 31 Javascript
layui添加动态菜单与选项卡
Jul 26 Javascript
Vue watch响应数据实现方法解析
Jul 10 Javascript
网页自动刷新,不产生嗒嗒声的一个解决方法
Mar 27 #Javascript
统一接口:为FireFox添加IE的方法和属性的js代码
Mar 25 #Javascript
在Z-Blog中运行代码[html][/html](纯JS版)
Mar 25 #Javascript
JavaScript判断两种格式的输入日期的正确性的代码
Mar 25 #Javascript
表单(FORM)的一些实用效果代码
Mar 25 #Javascript
推荐dojo学习笔记
Mar 24 #Javascript
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
Mar 24 #Javascript
You might like
PHP编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
php实现的双向队列类实例
2014/09/24 PHP
thinkPHP线上自动加载异常与修复方法实例分析
2016/12/01 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
2019/06/14 PHP
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
Jquery焦点与失去焦点示例应用
2014/06/10 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
vue3.0实现插件封装
2020/12/14 Vue.js
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
python类定义的讲解
2013/11/01 Python
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
Pycharm调试程序技巧小结
2020/08/08 Python
python中turtle库的简单使用教程
2020/11/11 Python
如何启动时不需输入用户名与密码
2014/05/09 面试题
优秀毕业大学生推荐信
2013/11/13 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
服装设计师求职信
2014/06/04 职场文书
2014年重阳节活动策划方案书
2014/09/16 职场文书
高中学生自我评价范文
2014/09/23 职场文书
张思德观后感
2015/06/09 职场文书
html5表单的required属性使用
2021/07/07 HTML / CSS
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang