Сохранить прежний статус с помощью jquery

Я скачал 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>

Спасибо!

1 ответ

Решение

Ваш complete обратный вызов сбрасывается status.html(), И ваш beforeSend опустошается status с status.empty();, Удалить эту строку!

Затем попробуйте добавить новое сообщение, завернутое в какую-то разметку, вместо того, чтобы перезаписывать все содержимое status:

complete: function(xhr) {
    var message = '<div class="new">' + xhr.responseText + '</div>';
    status.prepend(message);
}
Другие вопросы по тегам