首页 > 试题广场 >

对于下面这段js代码,回答下面的问题。

[问答题]
请编写一个通用的事件注册函数(请看下面的代码)。
function addEvent(element, type, handler)
{
    // 在此输入你的代码,实现预定功能
}
function addEvent(element, type, handler) {
        if (element.addEventListener) {
            element.addEventListener(type, handler, false);
        } else if (element.attachEvent) {
            element.attachEvent("on" + type, handler);
        } else {
            element["on" + type] = handler;
        }
    }
发表于 2014-12-16 21:59:56 回复(2)
var EventUtil = {

    addHandler: function(element, type, handler){
        if (element.addEventListener){
            element.addEventListener(type, handler, false);
        } else if (element.attachEvent){
            element.attachEvent("on" + type, handler);
        } else {
            element["on" + type] = handler;
        }
    },
    
    getButton: function(event){
        if (document.implementation.hasFeature("MouseEvents", "2.0")){
            return event.button;
        } else {
            switch(event.button){
                case 0:
                case 1:
                case 3:
                case 5:
                case 7:
                    return 0;
                case 2:
                case 6:
                    return 2;
                case 4: return 1;
            }
        }
    },
    
    getCharCode: function(event){
        if (typeof event.charCode == "number"){
            return event.charCode;
        } else {
            return event.keyCode;
        }
    },
    
    getClipboardText: function(event){
        var clipboardData =  (event.clipboardData || window.clipboardData);
        return clipboardData.getData("text");
    },
    
    getEvent: function(event){
        return event ? event : window.event;
    },
    
    getRelatedTarget: function(event){
        if (event.relatedTarget){
            return event.relatedTarget;
        } else if (event.toElement){
            return event.toElement;
        } else if (event.fromElement){
            return event.fromElement;
        } else {
            return null;
        }
    
    },
    
    getTarget: function(event){
        return event.target || event.srcElement;
    },
    
    getWheelDelta: function(event){
        if (event.wheelDelta){
            return (client.engine.opera && client.engine.opera < 9.5 ? -event.wheelDelta : event.wheelDelta);
        } else {
            return -event.detail * 40;
        }
    },
    
    preventDefault: function(event){
        if (event.preventDefault){
            event.preventDefault();
        } else {
            event.returnValue = false;
        }
    },

    removeHandler: function(element, type, handler){
        if (element.removeEventListener){
            element.removeEventListener(type, handler, false);
        } else if (element.detachEvent){
            element.detachEvent("on" + type, handler);
        } else {
            element["on" + type] = null;
        }
    },
    
    setClipboardText: function(event, value){
        if (event.clipboardData){
            event.clipboardData.setData("text/plain", value);
        } else if (window.clipboardData){
            window.clipboardData.setData("text", value);
        }
    },
    
    stopPropagation: function(event){
        if (event.stopPropagation){
            event.stopPropagation();
        } else {
            event.cancelBubble = true;
        }
    }

};
发表于 2016-08-06 18:44:35 回复(0)
//用in window代替ele.addEventListener性能会更好,还有更改了attachEvent的this指向问题
function addEvent (ele,type,handler) {
if ("addEventListener" in window) {
ele.addEventListener(type,handler,false);
} else if("attachEvent" in window){
ele.attachEvent('on' + type,function(){
handler.call(ele);
});
} else{
ele["on" + type] = handler;
};
}
发表于 2015-03-29 13:00:05 回复(0)
if(element.addEventListener)
{
    element.addEventListener(type, handler, false);
}else if(element.attchEvent)
{
    element.attachEvent("on"+type,handler);
}else{
    element["on" + click] = handler;
}

发表于 2016-08-18 21:07:25 回复(0)
function addEvent(element, type, handler){
    if(element.addEventListener){
        element.addEventListener(type,handler,false);
    }else if(element.attachEvent){
        element.attachEvent("on"+type,handler);
    }else{
        element["on"+type] = handler;
    }

}
发表于 2016-04-16 14:57:54 回复(0)
function addEvent(element, type, handler) {
        if (element.addEventListener) {    // Mozilla中
            element.addEventListener(type, handler, false);
        } else if (element.attachEvent) {    // IE中
            element.attachEvent("on" + type, handler);
        } else {
            element["on" + type] = handler;
        }
}
发表于 2015-09-05 10:27:01 回复(0)
function addEvent(element, type, handler)
{
   if(element.attachEvent)
    {
    element.attachEvent("on"+type,function(){handler.call(this)})
    }
    else
    {
        element.addEventListener(type,handler,false)
    }
}

发表于 2015-01-30 12:18:00 回复(0)
晕头像
function addEvent(ele,type,hander){

}
发表于 2014-12-25 18:53:27 回复(0)
function addEvent(element,type,handler){
    if(document.all){
        element.attachEvent("on"+type,handler);
    }else{
        element.addEventListener(type,handler);
    }
}
发表于 2014-12-08 12:50:41 回复(0)
function addEvent(element, type, handler)
{
 if(addEventListener){
 element.addEventListener(type,handler,false);
 }else{
 element.attachEvent(type,handle)
 }
} 
发表于 2014-11-23 14:25:30 回复(0)
addEvent('#id', 'click', function(){});
发表于 2014-11-19 15:41:04 回复(0)
return element.addEventListener ? element.addEventListener(type, handler, false) : element.attachEvent("on" + type, handler)
发表于 2014-11-12 16:35:08 回复(0)
element.addEventListener ?
    element.addEventListener(type,handler,false) : element.attacheEvent('on'+type,handler)
发表于 2014-11-07 14:37:45 回复(0)
看第二道题!
发表于 2014-11-06 20:48:56 回复(0)
function addEvent(element, type, handler) {     if(element.addEventListener){
       element.addEventListener(type,handler,false);
}else if(element.attachEvent){
    element.attachEvent('on'+type,handler);
}else{
   element["on"+type]=handler;
}  }

发表于 2014-11-05 10:51:53 回复(0)