我使用Jquery file upload by blueimp想要捕获上传文件后发生的操作。 所以,这很好用
.on('change','input[type=file]',function(e)
{
console.log('OOOOOOOOk');
})
但它不适合我,因为我需要在文件上传完成后采取行动。 所以,在docs我找到了这个解决方案:
var url = './fileUpload/jQuery-File-Upload/server/php/';
$('#fileupload').fileupload({
url: url,
dataType: 'json',
done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p/>').text(file.name).appendTo('#files');
});
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .progress-bar').css(
'width',
progress + '%'
);
}
}).prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled')
.bind('fileuploadcompleted',function(e,data)
{
console.log('eventFinished');
});
但是我在上传后没有在控制台中看到eventFinished字符串,但请参阅OOOOOOOk。那我怎么能抓住这个事件呢?
答案 0 :(得分:3)
您正在绑定&#39; fileuploadcompleted&#39;事件到实际元素的父元素,所以尝试以这种方式重新安排代码。
var url = './fileUpload/jQuery-File-Upload/server/php/';
$('#fileupload').fileupload({
url: url,
dataType: 'json',
done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p/>').text(file.name).appendTo('#files');
});
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .progress-bar').css(
'width',
progress + '%'
);
}
}).bind('fileuploadcompleted',function(e,data)
{
console.log('eventFinished');
}).prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled');