2012-11-09 13 views
7

kullanıyorum: https://github.com/blueimp/jQuery-File-Upload (temel eklentisi, ui eklenmeden) Ben bağlantı bireyi kravat data.context kullanıyorumBlueimp jQuery dosya yükleme - Geri bağlamda çağrı ilerleme, sonuncusu değil güncelleştirme

Her dosya yükleme işleminin ilerlemesini güncellemek için düğümler, ancak son yükleneni güncellemez. Yani örneğin 4 dosya seçtiğimde, sayfamda görüntülenir ve ilerleme listede ilk 3 için çalışır, ancak 4. değil. Seçilen numaradan bağımsız olarak, listedeki her zaman sonuncudur. (eğer sadece 1 öğe seçilirse, o zaman çalışır). Ayrıca, ilgili ilerleme çubuğunu da güncellemediği anlaşılmaktadır.

Herhangi bir fikrin var mı? öyle çıkıyor

$('.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 + '%'); 
    } 

}) 

GÜNCELLEME 'tr:: Geçen' selektör

İşte benim kod. nedenle bu işe yaramazsa:

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

ancak bunu yapar:

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

Bana bir iyilik yapar ve nasıl iptal bağlantı eserlerini açıklayabilir misiniz doğru

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

olurdu? – Hank

+2

Kodumu oldukça değiştirdim, ancak çalışmayı iptal etmek için şunu ekleyin: data.submit() işlevinin geri çağırılmasından hemen önce: data.context.find ('. Js-cancel-file') .bind (function (e) { \t \t \t \t data.jqXHR.abort() 'tıklayın';.. \t \t \t \t $ (this) .parent ('td') prev ('td') metin \t \t \t \t $ (this) .unbind ('tıklayın'); ('iptal') \t \t \t}); – Stevo

+0

Harika, teşekkürler! En iyi şey: anlıyorum :) – Hank

cevap

0

Sadece doğruluk ve Sistem tutarlılık için cevap tekrarlayın.
Artık, tekrarlanamaz.

": Bu işe yaramazsa yüzden seçici 'son tr': bu kadar çıkıyor
data.context = $('.file-list table tr:last').after(fileDetails);
ancak bunu yapar:
data.context = $(fileDetails).appendTo('.file-list table');"

0

seçici :last yok . Bunun yerine :last-child kullanın.

İlgili konular