JS添加/綁定事件監聽函數並傳參數attachEvent和addEventListener兼容個瀏覽器

 *
 * 添加事件監聽函數
 *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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章