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

*
 * 添加事件监听函数
 * obj        要添加监听的对象或元素
 * eventName  事件名
 * fun        监听函数的名称
 * param      给监听函数传的参数,这里就传了一个参数
 *

function addEventHandler(obj,eventName,fun,param=''){
    var fn = fun;
    if(param)
    {
        fn = function(e)
        {
            fun.call(this, param);  //继承监听函数,并传入参数以初始化;
        }
    }
    if(obj.attachEvent){
        obj.attachEvent('on'+eventName,fn);
    }else if(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 delete obj["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;
}

演示地址: demo/test11.html


转载请注明:同盟者   本文来源:http://blog.sina.com.cn/tomener

posted @ 2015-04-16 16:17  luckymore  阅读(2359)  评论(0)    收藏  举报