驱动事件的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系列(9) 根本没有“JSON对象”这回事!
Jan 15 Javascript
javascript采用数组实现tab菜单切换效果
Dec 12 Javascript
Js保留小数点的4种效果实现代码分享
Apr 12 Javascript
jQuery中append()方法用法实例
Jan 08 Javascript
JavaScript面向对象程序设计教程
Mar 29 Javascript
jQuery插件扩展测试实例
Jun 21 Javascript
Vue.js中用v-bind绑定class的注意事项
Dec 13 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
Apr 27 Javascript
JavaScript之promise_动力节点Java学院整理
Jul 03 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
Jul 03 Javascript
JQuery 又谈ajax局部刷新
Nov 27 jQuery
vue-cli常用设置总结
Feb 24 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
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
php的header和asp中的redirect比较
2006/10/09 PHP
PHP字符串 ==比较运算符的副作用
2009/10/21 PHP
javascript some()函数用法详解
2014/11/13 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
javascript脚本调试方法小结
2008/11/24 Javascript
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
Python 多核并行计算的示例代码
2017/11/07 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
基于CSS3 animation动画属性实现轮播图效果
2017/09/12 HTML / CSS
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
strlen的几种不同实现方法
2013/05/31 面试题
什么是"引用"?申明和使用"引用"要注意哪些问题?
2016/03/03 面试题
会计专业毕业生求职信分享
2014/01/03 职场文书
十佳护士获奖感言
2014/02/18 职场文书
学校消防演习方案
2014/02/19 职场文书
车间质检员岗位职责
2015/04/08 职场文书
莫言获奖感言(全文)
2015/07/31 职场文书
新入职员工工作总结
2015/10/15 职场文书
八年级语文教学反思
2016/03/03 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP