日期:2014-05-16 浏览次数:20551 次
/**
* @author changchuan
* @用途:用来为Dom节点添加事件多播,回调函数(类似,attachevent)
* @参数:oDom,添加事件的dom节点。eventType,事件类型。oFun,要添加的事件回调函数
* @example:function testFun(){
alert(arguments[0].type);
}
function testFun2(){
alert(this.id+"asdasd");
}
Dom.addLisenner(document.getElementById("testInput"),"onclick",testFun);
Dom.addLisenner(document.getElementById("testInput"),"onclick",testFun2);
//Dom.remLisenner(document.getElementById("testInput"),"onclick",testFun2);
*
*/
var Dom={};
Dom.addLisenner= function (oDom,eventType,oFun){
var oEl=oDom,e=eventType,funhandle=oFun,oEvArr=[];
if(typeof(oEl.oEvArr)=="undefined"){
oEl.oEvArr=oEvArr;
}
if(typeof(oEl.oEvArr[e])=='undefined'){
oEl.oEvArr[e]=[];
}
oEl.oEvArr[e].push(funhandle);
if(!oEl[e]){
oEl[e]=function(){
var ev=arguments[0]||window.event;
var oEvArr=this.oEvArr['on'+ev.type];
var el=this;
for(var i=0;i<oEvArr.length;i++){
if(oEvArr[i]){
oEvArr[i].call(el,ev);
}
}
}
}
}
Dom.remLisenner=function (oDom,eventType,oFun){
if(!oDom||!eventType||!oFun||typeof(oDom.oEvArr)=='undefined'||typeof(oDom.oEvArr[eventType])=='undefined'){
return false;
}
var oEvArr=oDom.oEvArr[eventType];
for(var i=0;i<oEvArr.length;i++){
if(oEvArr[i]==oFun){
oEvArr[i]=null;
return true;
}
}
return false;
}
/**********************Dom.addLisenner Dom.remLisenner End****************************/