Frage

Ich habe den folgenden Code:

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

Wenn mein Formular gesendet wird, sammle ich die Werte der aktivierten Kontrollkästchen und habe eine Reihe von Versprechen erstellt, von denen jedes ein $ ist.ajax-Anruf.

Meine Aufrufe werden ausgeführt und der Code in meinem .done funktion ausgeführt wird.

Ich denke jedoch, dass .done erwartet eine Zahl von Argumenten, eines für jedes Versprechen.Aber ich weiß nicht, wie viele ich im Voraus habe, und ich hoffte auf eine Reihe von Ergebnissen (jedes ist die Antwort des $.ajax-Anruf.)

Weiß jemand, ob ich meine Antworten gruppieren lassen kann?Danke!

War es hilfreich?

Lösung

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

Sehen Dok

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top