js的事件綁定方法中,ie只支持attachEvent,而FF和Chrome只支持addEventListener;嚴格來講:addEventListener只有IE9以上版本的IE瀏覽器上可以兼容,IE8或者更低的版本是不支持,這時要想可以兼容IE低版本瀏覽器就須要判斷當前瀏覽器而後針對不一樣瀏覽器決定用哪個。瀏覽器
attachEvent和addEventLitener的不一樣之處是第二個參數事件名要多加個「on」,好比‘onclick’,並且他的this 指向的是window,在使用的時候須要改變this指向。下面就是一個兼容的寫法:this
1 var Event = {}; 2 Event.addEvents = function(target,eventType,handle){ 3 if(document.addEventListener){ 4 Event.addEvents = function(target,eventType,handle){ 5 target.addEventListener(eventTypt,handle,false); 6 }; 7 }else { 8 Event.addEvents = function(target,eventType,handle){ 9 target.attachEvent('on'+eventType,function(){ 10 handle.call(target,arguments); 11 }); 12 }; 13 14 } 15 Event.addEvents(target,eventType,handle); 16 17 }
調用方法:spa
1 Event.addEvents(document,"click",function(){ 2 alert(ok) 3 });