Blueimp jquery文件上传 - 在上下文中进行回调,最后一个不更新

时间:2012-11-09 11:23:05

标签: jquery file-upload blueimp

我正在使用:https://github.com/blueimp/jQuery-File-Upload(基本插件,没有添加ui)

我正在使用data.context绑定各个节点的链接以更新每个文件上传的进度,但它不会更新最后加载的文件。 因此,例如,如果我选择4个文件,它们将显示在我的页面上,进度将适用于列表中的前3个,但不适用于第4个。无论选择哪个数字,它始终是列表中的最后一个。 (如果只选择了1个项目,则可以正常工作)。

此外,它似乎也没有更新相关的进度条。

有什么想法吗?

这是我的代码:

$('.aws').fileupload({

    limitMultiFileUploads: 1,

    dataType: 'html',

    add: function (e, data) {

            var file = data.files[0];
            var fileDetails = '<tr><td>' + 
            file.name + 
            '</td><td class="progress"><span class="progress"><span class="js-progress-active progress-active"></span>' + 
            '</span></td><td class="cancel-file"><a href="#" class="cancel-file-load-icon js-cancel-file">Cancel</a></td></tr>';

            if ($('.file-list table tr:last').length > 0) {
                data.context = $('.file-list table tr:last').after(fileDetails);
            } else {
                data.context = $(fileDetails).appendTo('.file-list table');
            }

            data.submit();
    },

    progress: function (e, data) {
        var progress = parseInt(data.loaded / data.total * 100, 10);
        data.context.find('.js-progress-active').css(
            'width',
            progress + '%'
            ).text(progress + '%');
    }

})

UPDATE 原来是'tr:last'选择器。 所以这不起作用:

data.context = $('.file-list table tr:last').after(fileDetails);

但这样做:

data.context = $(fileDetails).appendTo('.file-list table');

2 个答案:

答案 0 :(得分:0)

请重复您的答案,以确保准确性和系统一致性 现在,它不再具有可再现性。

“原来它是'tr:last'选择器。所以这不起作用:
data.context = $('.file-list table tr:last').after(fileDetails);
但这样做:
data.context = $(fileDetails).appendTo('.file-list table');

答案 1 :(得分:0)

选择器:last不存在。 请改用:last-child

data.context = $('.file-list table tr:last-child').after(fileDetails);

是正确的