【发布时间】:2014-01-03 22:55:43
【问题描述】:
我在 UI 模式下使用 Fine Uploader 作为 jQuery 插件,并且我有一个文件类型的下拉列表,例如图像、视频、pdf 等。当下拉列表时,我正在动态更改 allowedExtensions 和 acceptFiles通过删除 Fine Uploader 生成的 div 进行更改,然后像这样重新创建它:
$('.qq-uploader').remove();
$('#jquery-wrapped-fine-uploader').fineUploader({/* options go here... */});
动态验证以这种方式工作得很好,但我在完整的回调事件中做了一些自定义的事情,比如显示缩略图。当文件被上传时,它会在第一次上传之前下拉列表发生变化时触发 complete 事件。
我现在的解决方法是将上传的文件名存储在一个数组中,如果它已经存在于数组中,则跳过自定义的完整逻辑。
我不明白为什么完整的回调事件会触发多次,因为我只上传一个文件。是否有对此的解释和/或防止重复回调触发的方法?
【问题讨论】:
-
你用的是什么版本?我可以向您保证,每个已完成的文件只调用一次 onComplete,至少在当前版本中是这样。如果您使用的是当前版本,则问题出在您的代码中,因此您需要发布所有客户端代码以供检查。
-
我使用的是 3.6.3 版本,这里是我在 jsfiddle 设置的一个例子:jsfiddle.net/SNrv9 更改下拉列表几次,然后上传文件来查看问题。
-
那个版本已经超过 7 个月了。我建议你升级一下,看看问题是否仍然存在。
-
我升级到 4.1.1,问题依旧。这是一个更新的 jsfiddle:jsfiddle.net/LRYFu 更改下拉几次然后上传文件。完整的警报将触发几次。我是最新版本的新手,有没有更好的方法来动态更改 allowedExtensions 和 acceptFiles?
标签: javascript jquery fine-uploader