这段代码似乎没有正确运行:
var addEventListener = (function () {
"use strict";
if (document.addEventListener) {
return function (element, event, handler) {
element.addEventListener(event, handler, false);
};
} else {
return function (element, event, handler) {
element.attachEvent('on' + event, handler);
};
}
})();
addEventListener(window, 'onload', calcFailback);
Chrome 返回:
Uncaught TypeError: Object onload has no method 'addEventListener'
Jslint 返回:
Unexpected else.
有什么想法吗?
最佳答案
您正在创建一个全局变量 addEventListener
,它将作为 window
的属性添加。所以 window.addEventListener
(element
=== window
, with this call) 实际上指的是你的自定义函数,而不是原生函数。使用不同的名称:
var myAddEventListener = (function() {
"use strict";
if (document.addEventListener) {
return function(element, event, handler) {
element.addEventListener(event, handler, false);
};
} else {
return function(element, event, handler) {
element.attachEvent('on' + event, handler);
};
}
})(); //<-- invoke it
也可以使用“加载”
:
myAddEventListener( window, "load", function(){})
关于javascript - 意外的 "else"和功能未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11845906/