给页面元素添加事件时,我们需考虑浏览器的兼容问题,因为 addEventListener 只在 FF 中适用,而 attachEvent 只在 IE 中适用,同时冒泡事件也类似。
以下代码实现了 IE 与 FF 的兼容,在给页面元素添加事件的同时,阻止了冒泡。
var addEvent = function(o,event,func){ var f = function(){}; if(window.event){ f = function(){ func(window.event); window.event.stopPropagation(); } }else{ f = function(e){ func(e); e.cancelBubble = true; } } if(o.addEventListener){ o.addEventListener(event,f,false); }else if(o.attachEvent){ o.attachEvent("on"+event,f); }else{ o["on"+event] = f; } }