Probabilmente c'è un modo (o tre) per farlo ... tuttavia, vedo un problema con il tuo obiettivo: come fai a sapere quando tutti i file sono stati caricati? Riformulare in un modo che ha più senso ... come fai a sapere cosa significa "tutto"? Secondo la documentazione, init
viene richiamato durante l'inizializzazione di Dropzone stesso, e quindi si imposta il gestore di eventi complete
per fare qualcosa quando ogni file che viene caricato è completo. Ma quale meccanismo viene dato all'utente per consentire al programma di sapere quando ha lasciato cadere tutti i file che ha intenzione di abbandonare? Se si presume che lui/lei farà una caduta batch (cioè, cadere sul Dropzone 2-qualunque numero di file, in una sola volta, in un'azione di una sola goccia), quindi il seguente codice potrebbe/dovrebbe funzionare:
Dropzone.options.filedrop = {
maxFilesize: 4096,
init: function() {
var totalFiles = 0,
completeFiles = 0;
this.on("addedfile", function (file) {
totalFiles += 1;
});
this.on("removed file", function (file) {
totalFiles -= 1;
});
this.on("complete", function (file) {
completeFiles += 1;
if (completeFiles === totalFiles) {
doSomething();
}
});
}
};
Fondamentalmente, si guarda ogni volta che qualcuno aggiunge/rimuove i file da Dropzone e tiene un conteggio nelle variabili di chiusura. Quindi, una volta completato il download di ogni file, si incrementa il contatore di progresso completeFiles
var, e si verifica se ora equivale al totalCount che stavi guardando e aggiornando mentre l'utente posizionava le cose nel Dropzone. (Nota: non ha mai usato il plug-in/JS lib, quindi questo è migliore ipotesi su cosa si potrebbe fare per ottenere quello che vuoi..)
fonte
2013-06-08 12:26:07
@Emin Fiera abbastanza :) In realtà, va bene, b/c questa è la soluzione migliore. E fa un uso migliore dell'API. –
Vorrei aggiungere che nel frattempo c'è un evento aggiuntivo chiamato 'queuecomplete' che si attiva quando la coda ha terminato il caricamento. – jdepypere
Inoltre, non dimenticare di verificare la presenza di file in uno stato ERROR (cioè tipo di file non valido, dimensioni, ecc.). Vedere la mia risposta, sotto, per una nuova funzione per verificarlo. – Brett