Dut*_*432 12 jquery events ajax-upload
我正在使用Valums Ajax Uploader上传一批文件.我们最近更改了单上传多重上传类型的代码.这引发了我们的代码问题.
如您所见,当onComplete事件触发时,我们重新加载页面以显示新上传的图像.但是,onComplete事件似乎在EACH文件完成后触发,而不是在整个批处理完成后触发.这现在导致了一个问题,因为当第一个文件完成时,页面重新加载尝试被触发,上传者弹出一个警告"如果你离开这个页面,那么你的剩余上传内容将会破坏" - 或者是这样的.
我注意到onComplete事件发回了一个基于0的已完成文件的ID,但我不确定如何使用它来确定批处理何时完成.
我想我的问题是A)是否有一个不同的事件在所有文件完成时触发或B)如何确定用户选择了多少文件,以便跟踪onComplete事件已完成的文件数量?
var uploader = new qq.FileUploader({
multiple: true,
element: document.getElementById('file-uploader'),
action: '/projectPhotoUpload.php',
allowedExtensions: ['jpg', 'png', 'gif'],
debug: true,
params: {id: i},
onComplete: function(id, fileName, responseJSON){
window.location = 'projects.php?all=true&tab=1&sel=' + currProject;
}
})
Run Code Online (Sandbox Code Playgroud)
Lee*_*Lee 22
您可以添加一个计数器,该计数器在上载启动时递增,在完成时递减.仅当计数器为0时才重定向完成.
var running = 0;
var uploader = new qq.FileUploader({
multiple: true,
element: document.getElementById('file-uploader'),
action: '/projectPhotoUpload.php',
allowedExtensions: ['jpg', 'png', 'gif'],
debug: true,
params: {id: i},
onSubmit: function(id, fileName){
running++;
},
onComplete: function(id, fileName, responseJSON){
running--;
if(running==0){
window.location = 'projects.php?all=true&tab=1&sel=' + currProject;
}
}
})
Run Code Online (Sandbox Code Playgroud)