我对在v3.8中使用progress事件感到有点困惑(使用jQuery包装器)我理解只有某些支持ProgressEvent
接口的浏览器,所以我在Firefox v20.0.1中测试它
使用其他代码,我添加了这个:
.on('progress', function (id, filename, uploadedBytes, totalBytes)
{
alert('uploadedBytes: ' + uploadedBytes + '\n totalBytes: ' + totalBytes);
if (uploadedBytes < totalBytes) {
progress = '"' + fileName + '" uploading... ' + Math.round(uploadedBytes / totalBytes*100) +'%';
$('#qq-progress-bar').html(progress);
}
else {
$('#qq-progress-bar').html('saving');
}
})
请查看上面此事件中的ALERT功能。如果方法的输入参数是正确的,我不应该在'uploadedBytes'参数中看到上传文件的名称。 totalBytes参数似乎是正确的。警报显示如下:
我可以在某些浏览器中看到进度条,例如FireFox v20.0.1,但条形图没有进展。此外,上传金额的%值并没有真正做多少。我会看到一个值,然后它就会完整。
要显示所有这些,我正在更改文件模板中指定的'qq-progress-bar'。我是冒这个错误还是让这比我需要的更复杂?我只需要显示进度,不需要文本值,但肯定很好。例子?想法?
谢谢!
答案 0 :(得分:4)
您的方法签名不正确,在使用jQuery插件时需要包含event
参数:
.on('progress', function (event, id, filename, uploadedBytes, totalBytes) {
alert('uploadedBytes: ' + uploadedBytes + '\n totalBytes: ' + totalBytes);
if (uploadedBytes < totalBytes) {
progress = '"' + fileName + '" uploading... ' + Math.round(uploadedBytes /
totalBytes * 100) + '%';
$('#qq-progress-bar').html(progress);
}
else {
$('#qq-progress-bar').html('saving');
}
})