Dropzone.js CSS

Dropzone.js CSS

我有 dropzone.js 的上传。我将下一个代码添加到我的 JS 中:

 thumbnail: function(file, dataUrl) {
    var thumbnail = $('.dropzone .dz-preview.dz-file-preview .dz-image:last');
    thumbnail.css('background', 'url('+dataUrl+')');
    var $fotoramaDiv = $('.fotorama').fotorama();
    var fotorama = $fotoramaDiv.data('fotorama');
    fotorama.push({img: dataUrl, thumb:dataUrl});   
 }

我只有一个问题 - 当我同时上传多张图片时,我只得到最后一张。

如果我删除 :last 就是这种情况

我该如何解决这个问题?

已解决!

您的 thumbnail 选择器 $('.dropzone .dz-preview.dz-file-preview .dz-image:last'); 仅引用 :last 元素。您应该删除 :last 伪类。

表格

<form action="/file-upload"
  class="dropzone"
  id="my-awesome-dropzone"></form>

JS

 thumbnail: function("#my-awesome-dropzone") {
var thumbnail = $('.dropzone .dz-preview.dz-file-preview');
thumbnail.css('background', 'url('+dataUrl+')');
var $fotoramaDiv = $('.fotorama').fotorama();
var fotorama = $fotoramaDiv.data('fotorama');
fotorama.push({img: dataUrl, thumb:dataUrl});   

}

JSFIDDLE - https://jsfiddle.net/gqbkhkxp/

我做了下一个:

thumbnail: function(file, dataUrl) {
        var i=sessionStorage.getItem('uploaded_pic');
        if(typeof(dataUrl) != "undefined" && dataUrl !== null) {
            i++;
            sessionStorage.setItem('uploaded_pic', i);
            var selector='.dropzone .dz-preview.dz-file-preview:nth-child('+i+') .dz-image';
            alert(selector);
            var thumbnail = $(selector);
            thumbnail.css('background', 'url('+dataUrl+')');
            var $fotoramaDiv = $('.fotorama').fotorama();
            var fotorama = $fotoramaDiv.data('fotorama');
            fotorama.push({img: dataUrl, thumb:dataUrl});
        }

加载页面后,我将始终重置会话存储:

sessionStorage.setItem('uploaded_pic', 1);