所以我正在使用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]);
}
答案 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'
建议的代码更改