jQuery의 결과를 그룹화 할 수 있습니까? 방법 방법은 무엇입니까?
문제
다음 코드가 있습니다.
$('#remove-commercial-products-modal').find('form').submit(function() {
var promises = [];
var $modal = $(this).closest('.modal');
$(this).find('input:checkbox:checked').each(function() {
promises.push(
$.ajax({
url: '/commercial/products/unclaim/' + $(this).val() + '/',
dataType: 'json',
timeout: 10000,
cache: false
}));
});
$.when.apply($, promises).done(function(result) {
$modal.modal('hide');
});
return false;
});
.
이 양식을 제출하면 체크 된 확인란의 값을 수집하고 약속의 배열을 만들었습니다. 각각은 $ .ajax 호출입니다.
내 호출이 실행되고 내 .done
함수의 코드가 실행됩니다.
그러나 .done
가 각 약속에 대해 하나씩 인수의 number 을 기대하고 있다고 생각합니다.그러나 나는 얼마나 많은 사람들이 미리 가졌는지 모르지만, 나는 결과 배열을 기대하고 있었다 (각 하나는 $ .ajax 콜의 응답이되는 것)
누구나 내가 응답을 그룹화 할 수 있는지 알 수 있습니까? 감사합니다!
해결책
$.when.apply($, promises).done(function() {
var l = arguments.length,
i,
jqxhr;
for( i = 0; i < l; ++i ) {
jqxhr = arguments[i][2]; //The i:th jQXHR passed
}
});
.
제휴하지 않습니다 StackOverflow