给同一个对象的同一个事件设置多个绑定的函数(解决浏览器兼容性)

调用方法:bind(元素, 事件名称, 函数名称);

bind(document, 'click', fn1);
bind(document, 'click', fn2); //可以给同一个对象的同一个事件设置多个绑定的函数

参数:

参数1:绑定的对象

参数2:事件名称(因为标准浏览器没有on,IE浏览器有on所以这里不写on)

参数3:绑定的函数

function bind(obj, evname, fn) {
    if (obj.addEventListener) { //如果存在addEventListener说明是标准浏览器(非IE)
        obj.addEventListener(evname, fn, false); //事件名称、函数名称、不捕获
    } else {  //IE浏览器
        obj.attachEvent('on' + evname, function() { //用attachEvent()方法,事件名称加on,因为IEthis指向不正常,所以设置this指向
            fn.call(obj); //this的指向为绑定函数的对象
        });
    }
}

 

posted @ 2017-04-14 13:45  念念念不忘  阅读(176)  评论(0)    收藏  举报