不要在我无法修复的循环错误中创建函数
Don't make functions within a loop error I can't fix
所以我正在使用 JSlint 并尝试实现以下代码,但我收到了错误消息 "Don't make functions within a loop error I can't fix"。知道如何更改我的代码以使其不接收 errors/warnings?
var inputs = document.getElementsByTagName('input');
var blurInput = function () {
this.blur();
};
for (var i = 0; i < inputs.length; i++) {
(function (input) {
input.addEventListener('focus', blurInput);
})(inputs[i]);
}
您想将函数移出循环:
var inputs = document.getElementsByTagName('input');
var blurInput = function () {
this.blur();
};
// (rename this to something useful...)
var doSomething = function (input) {
input.addEventListener('focus', blurInput);
};
for (var i = 0; i < inputs.length; i++) {
doSomething(inputs[i]);
}
在你的情况下,你可以省去那个闭包:
for (var i = 0; i < inputs.length; i++) {
input[i].addEventListener('focus', blurInput);
}
如果您要使用 JsHint 或 EsLint,您可以选择禁用该规则,但如果是 JsLint,除了更改代码结构外别无选择。
您可以使用 'Frxstrem'
建议的代码更改
所以我正在使用 JSlint 并尝试实现以下代码,但我收到了错误消息 "Don't make functions within a loop error I can't fix"。知道如何更改我的代码以使其不接收 errors/warnings?
var inputs = document.getElementsByTagName('input');
var blurInput = function () {
this.blur();
};
for (var i = 0; i < inputs.length; i++) {
(function (input) {
input.addEventListener('focus', blurInput);
})(inputs[i]);
}
您想将函数移出循环:
var inputs = document.getElementsByTagName('input');
var blurInput = function () {
this.blur();
};
// (rename this to something useful...)
var doSomething = function (input) {
input.addEventListener('focus', blurInput);
};
for (var i = 0; i < inputs.length; i++) {
doSomething(inputs[i]);
}
在你的情况下,你可以省去那个闭包:
for (var i = 0; i < inputs.length; i++) {
input[i].addEventListener('focus', blurInput);
}
如果您要使用 JsHint 或 EsLint,您可以选择禁用该规则,但如果是 JsLint,除了更改代码结构外别无选择。
您可以使用 'Frxstrem'
建议的代码更改