不要在循环错误中使函数无法修复

时间:2017-04-04 13:46:03

标签: javascript for-loop jslint

所以我正在使用JSlint并且我正在尝试实现以下代码,但是我收到错误消息“不要在循环错误中使函数无法修复”。知道如何改变我的代码以使其不会收到错误/警告吗?

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]);
}

3 个答案:

答案 0 :(得分:1)

您希望将功能移到循环之外:

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]);
}

答案 1 :(得分:0)

在你的情况下,你可以免除那个关闭:

for (var i = 0; i < inputs.length; i++) {
    input[i].addEventListener('focus', blurInput);
}

答案 2 :(得分:0)

如果您要使用JsHint或EsLint,您可以选择禁用该规则,但是在JsLint的情况下,除了更改代码结构之外别无选择。

您可以使用'Frxstrem'

建议的代码更改