標籤:fun 判斷 this 相容 tar class span nts chrome
js的事件Binder 方法中,ie只支援attachEvent,而FF和Chrome只支援addEventListener;嚴格來說:addEventListener只有IE9以上版本的IE瀏覽器上能夠相容,IE8或者更低的版本是不支援,這時要想能夠相容IE低版本瀏覽器就需要判斷當前瀏覽器然後針對不同瀏覽器決定用哪一個。
attachEvent和addEventLitener的不同之處是第二個參數事件名要多加個“on”,比如‘onclick’,而且他的this 指向的是window,在使用的時候需要改變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 }
調用方法:
1 Event.addEvents(document,"click",function(){2 alert(ok)3 });
js綁定事件方法:addEventListener的相容問題