jquery文件上传的全局开始/结束事件
Global start/end events for jquery file upload
我正在阅读jQuery文件上传(API选项)的文档,并且似乎没有表示"我正在开始"answers"我完成了"的事件。有开始和停止,但它们是在每次执行文件上传时调用的。
有没有人知道一个事件,我只是没有看到,或有一个建议如何模拟全局启动/停止操作?
您可以使用progressall
:
function (e, data) {
var progress = parseInt(data.loaded / data.total, 10);
if( progress === 1) {
//done :)
}
}
其实应该是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');
}
https://github.com/blueimp/jQuery-File-Upload/issues/990 最接近全局'开始'的是处理放置/更改/粘贴事件:
$('input[type="file"]').fileupload({
// config here...
}).bind('fileuploaddrop fileuploadchange fileuploadpaste', function(e, data) {
console.log('Global start');
});
此处理程序将只触发一次;在用户发起上传之后,在处理文件队列(或任何远程上传)开始之前立即开始。
如果你正在做没有客户端文件验证, @Kamel的答案对于全局'end'工作得很好(正如文档所建议的)。
如果您验证客户端,您可能还需要处理上传导致没有触发ajax上传的情况。我首先记录上传的文件,然后触发'end',一旦所有文件都被客户端拒绝,或者在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');
}
};
在jsbin上有一个工作演示:开始和结束将如上所述记录到控制台。
相关文章:
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 处理第三方库发送的ajax请求的开始和结束事件
- 从工作日结束到下一个工作日开始的完整日历JS包装时间
- 使用javascript&自定义验证器检查开始日期和结束日期
- 如何在上一个动画结束后开始动画
- 在ExtJS中获取开始/结束日期之间的日期
- 转换mysql的Fullcalendar开始/结束日期
- 给定特定日期(日/月/年)返回一周的开始 + 结束
- 在网页开始/结束时停止弹跳 (OS X)
- 更改高图表输出以显示开始-结束日期
- 如何将光标移动到ContentEditable Span的开始/结束
- Regexp在字符串中多次替换开始/结束符号
- EJS在页面布局的开始/结束处包含脚本
- 如何使轴“智能”和“;flexible"这样轴上的开始/结束点在D3 V4中是合理的
- 为两个形状定义x,y的线(开始/结束)连接器
- 如何在上/下键上阻止光标跳到文本框的开始/结束
- 选择具有id属性的元素,该属性以特定值开始/结束
- jquery文件上传的全局开始/结束事件
- 检测输入何时开始/结束聚焦
- 从开始 - 结束日期和时间 (UTC) 计算出日期范围