jQuery의 결과를 그룹화 할 수 있습니까? 방법 방법은 무엇입니까?

StackOverflow https://stackoverflow.com//questions/11709377

  •  13-12-2019
  •  | 
  •  

문제

다음 코드가 있습니다.

$('#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  
    }                                                              
});     
.

문서

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top