跨浏览器事件对象代码

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;
			}
		},
		getEvent:function(event){
			return event?event:window.event;
		},
		getTarget:function(event){
			return event.target?event.target:event.srcElement;
		},
		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){
				event.detachEvent("on"+type,handler);
			}else{
				element["on"+type] = null;
			}
		},
		stopPropagation:function(event){
			if (event.stopPropagation) {
				event.stopPropagation();
			}else{
				event.cancleBubble = true;
			}
		},
		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;
			}
		},
		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;
				}
			}
		}
	};

  

posted @ 2014-08-20 21:08  丁丢丢  阅读(174)  评论(0)    收藏  举报