2015-06-29 62 views
1

我正在使用Jquery file upload by blueimp想要捕獲上傳文件後發生的操作。 所以,這個工作正常jquery文件上傳捕獲完成上傳動作

.on('change','input[type=file]',function(e) 
{ 
    console.log('OOOOOOOOk'); 
}) 

但它不是爲我工作,因爲我需要採取行動後的文件上傳完畢。 所以,在docs我發現這個解決方案:

var url = './fileUpload/jQuery-File-Upload/server/php/'; 
     $('#fileupload').fileupload({ 
      url: url, 
      dataType: 'json', 
      done: function (e, data) { 
       $.each(data.result.files, function (index, file) { 
        $('<p/>').text(file.name).appendTo('#files'); 
       }); 
      }, 
      progressall: function (e, data) { 
       var progress = parseInt(data.loaded/data.total * 100, 10); 
       $('#progress .progress-bar').css(
        'width', 
        progress + '%' 
      ); 
      } 
     }).prop('disabled', !$.support.fileInput) 
      .parent().addClass($.support.fileInput ? undefined : 'disabled') 
      .bind('fileuploadcompleted',function(e,data) 
      { 
       console.log('eventFinished'); 
      }); 

但是,我看到控制檯eventFinished串上傳之後,卻看到OOOOOOOk。我怎樣才能抓住這個事件呢?

回答

3

您正在將'fileuploadcompleted'事件綁定到實際元素的父級,因此請嘗試以這種方式重新安排代碼。

var url = './fileUpload/jQuery-File-Upload/server/php/'; 
    $('#fileupload').fileupload({ 
     url: url, 
     dataType: 'json', 
     done: function (e, data) { 
      $.each(data.result.files, function (index, file) { 
       $('<p/>').text(file.name).appendTo('#files'); 
      }); 
     }, 
     progressall: function (e, data) { 
      var progress = parseInt(data.loaded/data.total * 100, 10); 
      $('#progress .progress-bar').css(
       'width', 
       progress + '%' 
     ); 
     } 
    }).bind('fileuploadcompleted',function(e,data) 
     { 
      console.log('eventFinished'); 
     }).prop('disabled', !$.support.fileInput) 
     .parent().addClass($.support.fileInput ? undefined : 'disabled'); 
+0

沒有什麼變化。 –

+1

您是否使用blueimp的Jquery文件上傳的UI版本?如果沒有,然後使用此事件,而不是'fileuploaddone' –

+0

是的,這是有效的。 –

相關問題