我正在閱讀jQuery文件上傳文檔(API options),並且似乎沒有表示「我正在啓動」和「我已完成」的事件。有啓動和停止,但這些被執行的每個文件上傳都會被調用。jquery文件上傳的全局啓動/結束事件
有誰知道我只是沒有看到的事件,或者有如何模擬全局啓動/停止操作的建議?
我正在閱讀jQuery文件上傳文檔(API options),並且似乎沒有表示「我正在啓動」和「我已完成」的事件。有啓動和停止,但這些被執行的每個文件上傳都會被調用。jquery文件上傳的全局啓動/結束事件
有誰知道我只是沒有看到的事件,或者有如何模擬全局啓動/停止操作的建議?
您可以使用progressall
:
function (e, data) {
var progress = parseInt(data.loaded/data.total, 10);
if(progress === 1) {
//done :)
}
}
是的,這個工作。使用add回調,我在調用submit()之前採取行動。然後我使用了一個成功的進度來處理我的「完成」操作。 – 2013-03-26 14:38:00
其實,這應該是stop
回調函數。
stop
Callback for uploads stop, equivalent to the global ajaxStop event (but for file upload requests only).
Example:
function (e) {
console.log('Uploads finished');
}
我有一個全球「開始」是處理刪除/修改/粘貼事件最接近:
$('input[type="file"]').fileupload({
// config here...
}).bind('fileuploaddrop fileuploadchange fileuploadpaste', function(e, data) {
console.log('Global start');
});
該處理器將只有一次火;在用戶開始上傳之後立即開始處理文件隊列(或任何遠程上傳)之前。
如果你正在做沒有客戶端文件驗證,the answer by @Kamel全球「結束」效果很好(as the documentation suggests)。
如果您確實驗證了客戶端,您可能還需要處理上傳不會導致觸發ajax上傳的情況。我這樣做,首先記錄上載的文件,然後觸發「結束」一旦所有要麼被拒絕的客戶端,或成功/失敗/中止繼AJAX上傳:
var selectedFiles = [];
$('#fileUpload').fileupload({
url: '//jquery-file-upload.appspot.com/',
//url: '//does.not.exist/',
dataType: 'json',
singleFileUploads: true,
// validate client-side: only allow '.png' files
acceptFileTypes: /(\.|\/)png$/i,
done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p/>').text(file.name).appendTo('#files');
});
},
processfail: function (e, data) {
var currentFile = data.files[0];
console.log(currentFile.name, 'cannot be uploaded');
if (data.files.error && currentFile.error) {
setFileDone(currentFile.name);
}
},
always: function (e, data) {
setFileDone(data.files[0].name);
}
}).bind('fileuploaddrop fileuploadchange fileuploadpaste', function(e, data) {
selectedFiles = data.files.map(function(f) { return f.name; });
console.log('Global start');
});
var setFileDone = function(fName) {
selectedFiles.pop(fName);
if (!selectedFiles.length) {
console.log('Global end');
}
};
有a working demo of this on jsbin:如上所述將開始和結束記錄到控制檯。
[callback-options(fileuploadalways)](https://github.com/blueimp/jQuery-File-Upload/wiki/Options#callback-options)和[always](https://github.com/blueimp/jQuery-File-Upload/wiki/Options#always) – Eich 2013-03-26 13:49:15