2013-08-27 41 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。 –