2017-04-04 5 views
0

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

は外の関数を作成し、その閉鎖のポイントは何ですか –

+1

そこにデータを渡しますか?後で使用するために 'input'を保存しません。 – Quentin

答えて

1

:あなたが使用してしまう場合

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

これは私が必要とするものです。親切にありがとうございました! – user7814645

0

、あなただけのそのクロージャを省略することができますJsHintまたはEsLintではそのルールを無効にするオプションがありますが、JsLintの場合はコードの構造を変更する以外の選択肢はありません。

あなたはによって提案されたコードの変更に行くことができる「Frxstrem」

0

あなたのケースでは
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]); 
} 
関連する問題