驱动事件的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 插件开发 extjs中的extend用法小结
Jan 04 Javascript
node.js中的fs.openSync方法使用说明
Dec 17 Javascript
10个很棒的jQuery代码片段
Sep 24 Javascript
jquery zTree异步加载简单实例讲解
Feb 25 Javascript
使用vue编写一个点击数字计时小游戏
Aug 31 Javascript
JavaScript易错知识点整理
Dec 05 Javascript
Vue过滤器的用法和自定义过滤器使用
Feb 08 Javascript
React Native中的RefreshContorl下拉刷新使用
Oct 09 Javascript
微信小程序实现手指触摸画板
Jul 09 Javascript
js实现搜索栏效果
Nov 16 Javascript
jquery操作select常见方法大全【7种情况】
May 28 jQuery
wx-charts 微信小程序图表插件的具体使用
Aug 18 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
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
设置php页面编码的两种方法示例介绍
2014/03/03 PHP
浅谈php提交form表单
2015/07/01 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
jquery 快速回到页首的方法
2013/12/05 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
微信小程序 解决swiper不显示图片的方法
2017/01/04 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
vue2.0 axios前后端数据处理实例代码
2017/06/30 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
2019/08/02 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
英国在线花园中心:You Garden
2018/06/03 全球购物
幼儿教师个人求职信范文
2013/09/21 职场文书
英语硕士生求职简历的自我评价
2013/10/15 职场文书
致跳远运动员广播稿
2014/02/11 职场文书
优质服务演讲稿
2014/05/14 职场文书
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫