2016-09-09 2 views
0

Я должен знать, когда пользователь выбирает сразу несколько файлов. Проблема заключается в том, что Dropzone не имеет события addedmultiple.Событие Dropzone для выбора нескольких файлов

фон

Я хочу, чтобы анимировать отдельные файлы с задержкой, так что они появляются один за другим. Для этого я должен знать, сколько файлов были выбраны, так что я могу сделать что-то вроде:

dz.on('addedmultiple', function(files){ 
    files.forEach(function(file, index){ 
     var fileBox = $(file.previewElement).hide(); 

     setTimeout(function(){ 
      fileBox.fadeIn('fast'); 
     }, index * 100); 
    }); 
}); 

Я мог бы добавить глобальную переменную в сочетании с addedfile событием для подсчета файлов, а затем установить тайм-аут для сброса эта переменная. Но это не так хорошо. В любом случае, любые идеи будут оценены.

ответ

0

Нашел ответ сразу после запроса хахаха.

У Dropzone есть недокументированное событие под названием selectedfiles. Таким образом, мой подход завершился примерно так:

dz.on('selectedfiles', function(files){ 
    $(files).each(function(index){ 
     this.delay = index * 100; 
    }); 
}); 

dz.on('addedfile', function(file){ 
    var fileBox = $(file.previewElement).hide(); 

    setTimeout(function(){ 
     fileBox.fadeIn('fast'); 
    }, file.delay); 
}); 

Надеюсь, что это поможет кому-то еще с такой же необходимостью.

+0

Я не уверен, какую версию вы использовали, но текущая версия (начиная с 2017/01) имеет событие «addedfiles», которое делает именно то, что вам нужно: оно срабатывает один раз для выбора файла в диалоговом окне файла (одиночный или несколько). – Marcovecchio

Смежные вопросы