首页 > web前端 > js教程 > 驱动事件的addEvent.js代码_javascript技巧

驱动事件的addEvent.js代码_javascript技巧

WBOY
发布: 2016-05-16 19:15:55
原创
1040 人浏览过

复制代码 代码如下:

Array.prototype.inArray = function (value) { 
    var i; 
    for (i=0; 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);

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板