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