我正在使用Jquery file upload plugin上传文件。
jQuery('#UploadForm-form').fileupload({
'maxFileSize':20000000,
'acceptFileTypes':/(\.|\/)(csv)$/i,
'done':function(e,data)
{
// do something here
// call defaultDone here
},
'url':'/manage/upload?parent_id=1',
'autoUpload':false,
'maxNumberOfFiles':1});
问题是在上面的done函数中,我想做一些事情,然后调用插件提供的default done function。
我该怎么做?
答案 0 :(得分:0)
您必须记住默认功能。希望您能从以下代码中获得一些想法。
// Initialize your file upload object
jQuery('#UploadForm-form').fileupload({
'maxFileSize' : 20000000,
'acceptFileTypes' : /(\.|\/)(csv)$/i,
// Don't override default done function here
// You have to memoize default function from widget instance later.
// Hence, I comment following line
// 'done':function(e,data)
// {
// // do something here
// // call defaultDone here
// },
'url' : '/manage/upload?parent_id=1',
'autoUpload' : false,
'maxNumberOfFiles' : 1
});
// Memoize and call the default done as follows.
var widgetInstance = $('#UploadForm-form').data('blueimp-fileupload') || $('#UploadForm-form').data('fileupload');
widgetInstance.options.defDoneFn = widgetInstance.options.done
widgetInstance.options.done = function myCustomFn() {
// do something here
widgetInstance.options.defDoneFn .apply(this, arguments);
};
注意:我已针对http://blueimp.github.io/jQuery-File-Upload/basic.html测试了代码。如果您使用不同版本的fileupload,可能会有一些更改,如数据键(.data(<data key>)
。