JS添加/绑定事件监听函数并传参数attachEvent和addEventListener兼容个浏览器

时间:2021-06-19 10:48:44
 *
 * 添加事件监听函数
 *obj       要添加监听的对象或元素
 * eventName  事件名
 *fun       监听函数的名称
 *param     给监听函数传的参数,这里就传了一个参数
 *

functionaddEventHandler(obj,eventName,fun,param=''){
 
   var fn =fun;
   if(param)
    {
       fn =function(e)
       {
         fun.call(this, param);  //继承监听函数,并传入参数以初始化;
       }
    }
   if(obj.attachEvent){
      obj.attachEvent('on'+eventName,fn);
    }elseif(obj.addEventListener){
      obj.addEventListener(eventName,fn,false);
    }else{
       obj["on" +eventName] = fn;
    }
}
 *
 * 删除事件监听函数
 *obj       要添加监听的对象或元素
 * eventName  事件名
 *fun        监听函数的名称
 *

function removeEventHandler(obj,eventName, fun) {
    if(obj.removeEventListener)
       obj.removeEventListener(eventName, fun, false);
    else if(obj.detachEvent)
       obj.detachEvent("on" + eventName, fun);
    else deleteobj["on" + eventName];
}

JS添加/绑定事件监听函数测试

//添加test02监听函数
function test2(){
    var oview =document.getElementByIdx_x_x_x_x('eT1');
   addEventHandler(oview,'click',test02);
}
//删除test02监听函数
function test2D(){
    var oview =document.getElementByIdx_x_x_x_x('eT1');
   removeEventHandler(oview,'click',test02);
}
var test002 = 0;
function test02(){
   test002++;
   document.getElementByIdx_x_x_x_x('sub').innerHTML = test002;
}