7

私が使用している: 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 + '%');
    }

})

更新「tr:last」セレクターであることがわかりました。したがって、これは機能しません:

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

しかし、これは:

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

2 に答える 2

0

セレクター:lastが存在しません。:last-child代わりに使用してください。

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

正しいだろう

于 2015-04-10T09:06:42.397 に答える