if (window.addEventListener) {
var addListener = function(el, type, listener, useCapture) {
el.addEventListener(type, listener, useCapture);
};
} else if (document.all) {
addListener = function(el, type, listener) {
el.attachEvent("on" + type, function() {
listener.apply(el);
});
};
}
不应该在 if 和 else 语句中声明 addListener 函数,应该先声明; * 不需要使用 window.addEventListener 或 document.all 来进行检测浏览器,应该使用能力检测; * 由于 attachEvent 在 IE 中有 this 指向问题,所以调用它时需要处理一下
function addEvent(elem, type, handler) {
if (elem.addEventListener) {
elem.addEventListener(type, handler, false);
} else if (elem.attachEvent) {
elem["temp" + type + handler] = handler;
elem[type + handler] = function() {
elem["temp" + type + handler].apply(elem);
};
elem.attachEvent("on" + type, elem[type + handler]);
} else {
elem["on" + type] = handler;
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。