驱动事件的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 相关文章推荐
javascript 闭包
Sep 15 Javascript
Javascript判断对象是否相等实现代码
Mar 18 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
May 11 Javascript
深入解读JavaScript中的Hoisting机制
Aug 12 Javascript
jQuery插件Validate实现自定义表单验证
Jan 18 Javascript
Vue.js系列之项目结构说明(2)
Jan 03 Javascript
Node.js net模块功能及事件监听用法分析
Jan 05 Javascript
浅谈Express.js解析Post数据类型的正确姿势
May 30 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
Aug 03 Javascript
vuex刷新后数据丢失的解决方法
Oct 18 Javascript
jQuery实现影院选座订座效果
Apr 13 jQuery
vue 给数组添加新对象并赋值
Apr 20 Vue.js
网页自动刷新,不产生嗒嗒声的一个解决方法
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
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
javascript 回调函数详解
2014/11/11 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
Python实现计算文件夹下.h和.cpp文件的总行数
2015/04/23 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
python实现超市扫码仪计费
2018/05/30 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
python add_argument()用法解析
2020/01/29 Python
Python实现Excel自动分组合并单元格
2021/02/22 Python
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
mysql有关权限的表都有哪几个
2015/04/22 面试题
机械绘图员岗位职责
2013/11/19 职场文书
商务邀请函范文
2014/01/14 职场文书
给同学的道歉信
2014/01/16 职场文书
单位授权委托书范文
2014/08/02 职场文书
2014年预算员工作总结
2014/12/05 职场文书
利用html+css实现菜单栏缓慢下拉效果的示例代码
2021/03/30 HTML / CSS