2013-08-27 81 views
0

我需要有多個事件與fineuploader實例相關聯,但我不知道如何去做。不能在fineuploader屬性中添加它們嗎?是不是完整的事件,然後調用onComplete?有一個例子存在嗎?另外,我對關閉括號的數量感到困惑,等等。當我最初剪切和粘貼這個代碼時,還有一個額外的)};那個坐在外面。我刪除了這一點,但我不確定這是否很酷或不是真正的代碼。任何幫助表示讚賞,因爲我已經玩了幾個小時。此代碼以外的部分變量已設置。罰款上傳與格式化代碼的問題,事件

$(document).ready(function() { 

    var controlType = '@Model.ControlType'; 
    var surveyItemResultId = @Model.Results[0].SurveyItemResultId; 
    var itemId = @Model.SurveyItemId; 
    var instance = @Model.Results[0].SurveyInstanceID; 
    var loopingCounter = 0; 

    var fineuploader = $('#files-upload').fineUploader({    
     request: 
     { 
      endpoint: '@Url.Action("UploadFile", "Survey")', 
      customHeaders: { Accept: 'application/json' }, 
      params: { 
       surveyInstanceId: (function() { return instance; }), 
       surveyItemResultId: (function() { return surveyItemResultId; }), 
       itemId: (function() { return itemId; }), 
       loopingIndex: (function() { return loopingCounter++; }) 
      }    
     }, 
     validation: { 
       acceptFiles: ['image/*','application/pdf','text/csv'] , 
       allowedExtensions: ['jpeg', 'jpg', 'gif', 'png', 'csv', 'pdf'], 
       sizeLimit: 1024*1024*1 // 1MB 
      }, 
     multiple: true, 
     text: { 
       uploadButton: '<i class="icon-plus icon-white"></i>Select your upload file(s)' 
      }   
    })     

     .on('complete', function(event, id, fileName, responseJSON) { 
      alert("Success: " + responseJSON.success); 

      uploadedFileCounter++; 
      if (filesToUpload == uploadedFileCounter) 
      { 
       alert("DONE UPLOADING!"); 
      }   

    }).on('submitted', function(event, id, filename) { 
      filesToUpload++; 
      alert("submitted: " + filesToUpload); 
     } 
    }); 
});          
+0

額外'})'可能是關閉你的'$(文件).ready'內部函數。看起來你正在定義你的事件。你的問題到底是什麼? –

+0

你是對的,額外的});是爲了準備好文檔。 我從來沒有需要鏈接事件,我只能讓我的代碼工作,當我刪除.on('提交')和一個});. .on('complete')邏輯按預期觸發。 – RichieMN

+0

明白了,它很微妙,但是我的語法不正確。頂級代碼已更新。 – RichieMN

回答

0

您的代碼中充斥着語法和其他錯誤。首先,您引用了代碼中未定義的filesToUploaduploadedFileCounter變量。其次,你的代碼中有一個額外的右括號。

你的代碼也有一些格式化問題。首先,你的代碼不一致縮進。其次,你在混合放置大括號。

這裏是你的原代碼與我調整:

$(document).ready(function() { 

    var controlType = '@Model.ControlType', 
     surveyItemResultId = @Model.Results[0].SurveyItemResultId, 
     itemId = @Model.SurveyItemId, 
     instance = @Model.Results[0].SurveyInstanceID, 
     loopingCounter = 0, 
     filesToUpload = 0, 
     uploadedFileCounter = 0; 


    var fineuploader = $('#files-upload').fineUploader({ 
     request: { 
      endpoint: '@Url.Action("UploadFile", "Survey")', 
      customHeaders: { Accept: 'application/json' }, 
      params: { 
       surveyInstanceId: (function() { return instance; }), 
       surveyItemResultId: (function() { return surveyItemResultId; }), 
       itemId: (function() { return itemId; }), 
       loopingIndex: (function() { return loopingCounter++; }) 
      } 
     }, 
     validation: { 
      acceptFiles: ['image/*','application/pdf','text/csv'] , 
      allowedExtensions: ['jpeg', 'jpg', 'gif', 'png', 'csv', 'pdf'], 
      sizeLimit: 1024*1024*1 // 1MB 
     }, 
     multiple: true, 
     text: { 
      uploadButton: '<i class="icon-plus icon-white"></i>Select your upload file(s)' 
     } 
    }) 

     .on('complete', function(event, id, fileName, responseJSON) { 
      alert("Success: " + responseJSON.success); 

      uploadedFileCounter++; 
      if (filesToUpload == uploadedFileCounter) { 
       alert("DONE UPLOADING!"); 
      } 

     }).on('submitted', function(event, id, filename) { 
      filesToUpload++; 
      alert("submitted: " + filesToUpload); 
     }); 
});          
+0

抱歉關於原件的編輯,不知道該部分是如何工作的。是的,我通過試用和錯誤發現了額外的大括號。在原始問題的底部,我確實提到了一些變量是在顯示的代碼之外設置的,而您提到的兩個是這些變量。感謝編輯格式,因爲我不知道應該如何去做,特別是在事件發生期間。 感謝您的幫助,照常。 – RichieMN

+0

沒問題。將來,我建議使用一個好的IDE來在開發過程中揭示這些類型的問題。我個人使用(並且愛)JetBrains的IntelliJ IDEA。 –