1. 程式人生 > >JS新增/繫結事件監聽函式並傳引數attachEvent和addEventListener相容個瀏覽器

JS新增/繫結事件監聽函式並傳引數attachEvent和addEventListener相容個瀏覽器

   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;
}