1

ここから1つのアップロードプログレスバーをダウンロードしました:http://www.malsup.com/jquery/form/progress3.html

それは完璧だ; とにかく、ファイルがアップロードされると、次のようなファイルに関するステータスが表示されます。

http://mysite.com/1.jpgにアップロードされたファイル

ただし、新しいファイルをアップロードすると、ステータスが消え、アップロードされたばかりの新しいファイルの詳細が表示されます。

古いステータスにしたいのですが、新しいファイルがアップロードされると、新しいステータスが古いステータスの下に表示されます。どうすればこれを行うことができますか?

コードは次のとおりです。

(function() {

var bar = $('.bar');
var percent = $('.percent');
var status = $('#status');
$('form').ajaxForm({
beforeSend: function() {
    status.empty();
    var percentVal = '0%';
    bar.width(percentVal)
    percent.html(percentVal);
},
uploadProgress: function(event, position, total, percentComplete) {
    var percentVal = percentComplete + '%';
    bar.width(percentVal)
    percent.html(percentVal);
    //console.log(percentVal, position, total);
},
complete: function(xhr) {
    status.html(xhr.responseText);
}
}); 

})();       
</script>

リンクにデモが表示され、よく理解されている場合、ステータスはHTML内に次のように表示されます。

 <div id="status"></div>

ありがとうございました!

4

1 に答える 1

2

あなたのcompleteコールバックはリセットさstatus.html()れており、あなたbeforeSendはで空になっstatusていstatus.empty();ます。その行を削除してください!

次に、 :の内容全体を上書きするのではなく、マークアップでラップされた最新のメッセージを先頭に追加してみてください。status

complete: function(xhr) {
    var message = '<div class="new">' + xhr.responseText + '</div>';
    status.prepend(message);
}
于 2013-01-26T21:20:21.223 に答える