我有这个网站,我正在工作,我需要弄清楚当最后ajax调用完成…我正在使用这个jQuery插件,所有的工作都很棒,但问题是客户端一次上传2个文件…在最后一次ajax调用之后,我需要重定向到另一个页面。如果你看它在firebug,而上传文件,它运行http://dev.posnation.com/test/j/example/upload.php
两次,我需要有页面重定向后,只有在第二次运行..有一种方法在javascript或jQuery告诉ajax调用是否完成。
下面是实例化它的代码
// Initialize the jQuery File Upload widget:
$('#fileupload').fileupload();
在jQuery.fileupload.js
中有一个onDone函数 _onDone: function (result, textStatus, jqXHR, options) {
但它在第一次运行后运行,而不是在两个文件上传后运行....任何关于如何我可以重定向到另一个页面后,两个文件上传....的想法提前感谢
简短的回答是在onDone回调中减少计数器。一种可能的实现是使用全局变量,如下所示:
var numberFilesToUpload = 2;
// code to upload file
onDone: function() {
// this is the upload plug-ins callback function
numberFilesToUpload--;
if (numberFileToUpload == 0) {
windows.location.href = "/uploading-finished";
}
}
有更优雅的解决方案,但它们都涉及到递减计数器
您可以使用闭包来生成函数,该函数具有已上传文件的本地记录。
var fileUploads = function (filesNum, callback) {
var numberFilesToUpload = filesNum;
// code to upload file
return function() {
// this is the upload plug-ins callback function
numberFilesToUpload--;
if (numberFileToUpload == 0) {
callback();
}
};
}(2, function () {
//what you want to do when files are all uploaded.
});
fileUploads将在上传2个文件后触发callback
功能。回调和文件限制在
var fileUploads = function () {
//...
} (2, function () {});