attachEvent與addEventListner,實(shí)現(xiàn)dom的上同一事件的多次綁定
我們有時(shí)候會(huì)在一個(gè)元素上添加多次同一事件,然而普通綁定會(huì)導(dǎo)致只執(zhí)行最后一次
obj.onclick=method1;
obj.onclick=method2;
obj.onclick=method3;
只會(huì)執(zhí)行method3
obj.attachEvent('onclick',method1);
obj.attachEvent('onclick',method2);
obj.attachEvent('onclick',method3);
執(zhí)行順序是method3,method2膊毁,method1
可惜套么,這是微軟的私人方法
主流瀏覽器都支持W3C標(biāo)準(zhǔn)的addEventListener方法
obj.addEventListener('onclick',method1);
obj.addEventListener('onclick',method2);
obj.addEventListener('onclick',method3);
執(zhí)行順序是method1饼酿,method2帮毁,method3
因此铭乾,我們可以寫個(gè)函數(shù)來做下兼容處理
function addHandleEvent(obj, type, func) {
if (obj.attachEvent) {
obj.attachEvent('on' + type, func);
return true;
} else if (obj.addEventListener) {
obj.addEventListener(type, func, false);
return true;
} else {
obj['on' + type] = func;
}
}
下邊就可以安心的使用了:
obj.addHandleEvent(obj,'click',method1);
obj.addHandleEvent(obj,'click',method2);
obj.addHandleEvent(obj'click',method3);