2012-11-09 12 views
7

私が使用しています:https://github.com/blueimp/jQuery-File-Upload(基本的なプラグイン、UIを添加せずに)私はリンク個人を結びつけるためにdata.contextを使用していBlueimp jqueryのファイルアップロード - バックのコンテキストで呼び出し進行、最後のものは更新されません

ノードは各ファイルのアップロードの進捗状況を更新しますが、ロードされた最後のものは更新しません。 たとえば、4つのファイルを選択した場合、それらは私のページに表示され、進行状況はリストの最初の3つでは動作しますが、4番目のものでは機能しません。選択した番号にかかわらず、常にリストの最後の番号です。 (1つの項目だけが選択されていればOKです)。

また、関連する進行状況バーも更新していないようです。

アイデア?がそれだ判明

$('.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:最後の' セレクタ

は、ここに私のコードです。 ので、これは動作しません:

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

が、これはありません:

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

正しいだろう、あなたは私に好意を行うとどのようにキャンセルリンク作品を説明してもらえますか? – Hank

+2

コードをかなり変更しましたが、取り消しを機能させるには、addコールバックのdata.submit()の直前にこれを入れてください: data.context.find( '.js-cancel-file') .bind( 'クリック'、機能(E){ \t \t \t \t data.jqXHR.abort(); \t \t \t \t $(この).parent( 'TD')前( 'TD')のテキスト。 \t \t \t \t $(this)を.unbind( 'クリック');( 'キャンセル') \t \t \t}); – Stevo

+0

素晴らしいです、ありがとう!最高のものです:私はそれを理解しています:) – Hank

答えて

0

ただ、精度とシステムの整合性のためのあなたの答えを繰り返します。
今、再生できません。

"それはTR:最後の「だ判明セレクタ、これは動作しませんので:
data.context = $('.file-list table tr:last').after(fileDetails);
が、これはない:。
data.context = $(fileDetails).appendTo('.file-list table');"

0

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

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

関連する問題