首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fine Uploader3.4和setParams

fine Uploader3.4和setParams
EN

Stack Overflow用户
提问于 2013-04-06 16:31:23
回答 1查看 4.7K关注 0票数 2

我使用的是带有jquery插件的fine uploader。在上传文件之前需要动态传递参数,所以setParams()方法应该可以完成这项工作。我不能在onSubmit回调中出现异常:

1)上传器声明

代码语言:javascript
复制
 function initUploader() {
         var up = $('#BSUploader').fineUploader({
                      multiple: true,
                      debug: true,
                      request: {
                          endpoint: '${request.contextPath}/quantum/uploadToS3',
                          //params: {'folderId':r }
                      },
                      dragAndDrop: {
                          extraDropzones:[$('#filesContainer')],

..。

2) onSubmit回调

代码语言:javascript
复制
...
}).on('submit', function(event, id, name) {
          var r = $("#curfolderid").val();
          alert(r);
          up.setParams({'folderId':r});

3)错误日志

代码语言:javascript
复制
[FineUploader] Caught exception in 'onSubmit' callback - Object [object Object] has no method 'setParams' bundle-bundle_uploader_defer.js:4
qq.log bundle-bundle_uploader_defer.js:4
qq.FineUploaderBasic.log bundle-bundle_uploader_defer.js:26
b bundle-bundle_uploader_defer.js:47
a._options.callbacks.(anonymous function) bundle-bundle_uploader_defer.js:47
qq.FineUploaderBasic._upload bundle-bundle_uploader_defer.js:43
qq.FineUploaderBasic._uploadFileOrBlobDataList bundle-bundle_uploader_defer.js:43
qq.FineUploaderBasic.addFiles bundle-bundle_uploader_defer.js:29
qq.DragAndDrop.callbacks.dropProcessing bundle-bundle_uploader_defer.js:69
b bundle-bundle_uploader_defer.js:51
qq.UploadDropZone.onDrop bundle-bundle_uploader_defer.js:52
(anonymous function)

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-06 21:41:47

您没有正确使用jQuery插件包装。documentation on this plugin清楚地解释了在使用插件时如何调用API方法。您应该真正遵循自述文件,从the first page开始,然后根据您的目标用途遵循概述的路径。这样做将防止您遇到通过熟悉该库就可以解决的问题。

现在,来解决你的问题...

将为您创建的up变量分配一个jQuery对象,该对象表示ID为"BSUploader“的元素。您正试图调用此jQuery对象上不存在的函数。Fine Uploader不会通过额外的方法污染jQuery对象。在开发插件包装器时,遵循了jQuery网站上列出的所有接受/推荐的标准。这意味着您必须在插件实例的上下文中调用API方法。

因此,您必须更改此行:

up.setParams({'folderId':r});

要这样做:

up.fineUploader('setParams', {'folderId':r});

另一种选择是完全删除up变量。你真的不需要它,因为你可以像这样在你的回调处理函数中调用setParams

$(this).fineUploader('setParams', {'folderId':r});

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15848696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档