0
지연 함수 getJSON 호출을 성공 함수 내의 지역 변수를 참조하는 for 루프 내의 배열에 추가합니다. 내가 겪고있는 문제는 success 함수가 호출되면 로컬 변수가 루프의 마지막 반복에서 값을 가져 오는 것입니다. 예를 들어 아래를 참조jQuery Deferred - 지연된 getJSON 성공 함수의 변수 범위
var calls = [];
var arr = ['a','b','c'];
for (var a in arr) {
calls.push(
$.getJSON(window.location, function() { alert(arr[a]); })
);
}
$.when.apply($,calls);
jsFiddle을 : http://jsfiddle.net/Me5rV/
를이 값을 'C'세 가지 경고 결과, 나는 값 'A', 'B'와 'C'를 원하는 반면. 이것이 가능한가?
편집 : 아래의 작동하지만 완전히 다른 이유는 무엇입니까?
var calls = [];
var arr = ['a','b','c'];
for (var a in arr) {
calls.push(
$.getJSON(window.location, function(x) {
alert(x);
}(arr[a]))
);
}
$.when.apply($,calls);
jsFiddle : http://jsfiddle.net/Me5rV/1/
[자바 스크립트 악명 높은 루프 문제가 있습니까?] (http://stackoverflow.com/questions/1451009/javascript-infamous-loop-problem) – Esailija
그래서, 나는 그것을 동일한 솔루션을 사용하여 일하고있어, 여기서 문제를 완전히 이해하지 마십시오. 감사. –
다른 질문으로 충분하지 않다면 설명 할 수있을 것 같습니다. sec – Esailija