不要在我无法修复的循环错误中创建函数
Posted
技术标签:
【中文标题】不要在我无法修复的循环错误中创建函数【英文标题】:Don't make functions within a loop error I can't fix 【发布时间】:2017-08-29 18:18:51 【问题描述】:所以我正在使用 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]);
【问题讨论】:
在外面创建函数并传入数据 关闭的意义何在?您不要保存input
以供以后使用。
【参考方案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]);
【讨论】:
这就是我需要的。谢谢楼主!【参考方案2】:在你的情况下,你可以省去那个闭包:
for (var i = 0; i < inputs.length; i++)
input[i].addEventListener('focus', blurInput);
【讨论】:
【参考方案3】:如果您将使用 JsHint 或 EsLint,您将可以选择禁用该规则,但如果使用 JsLint,则除了更改代码结构之外别无选择。
您可以使用“Frxstrem”建议的代码更改
【讨论】:
以上是关于不要在我无法修复的循环错误中创建函数的主要内容,如果未能解决你的问题,请参考以下文章