Kann ich die Ergebnisse von jQuery $ gruppieren.wann Methode?
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!
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