简体   繁体   English

jQuery文件上传插件没有调用成功回调

[英]jQuery file upload plugin not calling success callback

I am using jQuery fileupload plugin and I want to do some custom jQuery stuff once fileupload is done 我正在使用jQuery fileupload插件,我想在完成fileupload后做一些自定义jQuery的东西

from here https://github.com/blueimp/jQuery-File-Upload/wiki/Options 从这里https://github.com/blueimp/jQuery-File-Upload/wiki/Options

Now it says this 现在它说了这个

Callback for successful upload requests.
$('#fileupload')
       .bind('fileuploaddone', function (e, data) {/* ... */})

Now I have defined this custom function for testing in my own js file 现在我已经在我自己的js文件中定义了这个自定义函数进行测试

$('#fileupload').bind('fileuploaddone', function (e, data) {/* ... */
alert('Hello');
})

But it's not working. 但它不起作用。

But if I edit the main file in here 但如果我在这里编辑主文件

  // Callback for successful uploads:
            done: function (e, data) {

Then it works. 然后它工作。

Check if the server-side uploading script returns a JSON reply - in my case it didn't work when the reply was empty, but file was uploaded successfully. 检查服务器端上载脚本是否返回JSON回复 - 在我的情况下,当回复为空,但文件上传成功时它不起作用。

So, below is working for me with jQuery 1.9.1 and the newest version of the "jQuery File Upload Plugin" - 5.21.3 所以,下面是jQuery 1.9.1和最新版本的“jQuery文件上传插件” - 5.21.3

$("#fileupload").bind("fileuploaddone", function (e, data) {
    console.log("fileuploaddone event fired");
});

Looking at the library code, seems all events are renamed removing 'fileupload' ... so 'fileuploaddone' becomes just 'done'. 查看库代码,似乎所有事件都被重命名,删除'fileupload'...所以'fileuploaddone'变成'完成'。 It is valid for all other callbacks. 它适用于所有其他回调。 look at this section: 看看这一节:

    // Other callbacks:
    // Callback for the submit event of each file upload:
    // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);
    // Callback for the start of each file upload request:
    // send: function (e, data) {}, // .bind('fileuploadsend', func);
    // Callback for successful uploads:
    // done: function (e, data) {}, // .bind('fileuploaddone', func);
    // Callback for failed (abort or error) uploads:
    // fail: function (e, data) {}, // .bind('fileuploadfail', func);
    // Callback for completed (success, abort or error) requests:
    // always: function (e, data) {}, // .bind('fileuploadalways', func);
    // Callback for upload progress events:
    // progress: function (e, data) {}, // .bind('fileuploadprogress', func);
    // Callback for global upload progress events:
    // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);
    // Callback for uploads start, equivalent to the global ajaxStart event:
    // start: function (e) {}, // .bind('fileuploadstart', func);
    // Callback for uploads stop, equivalent to the global ajaxStop event:
    // stop: function (e) {}, // .bind('fileuploadstop', func);
    // Callback for change events of the fileInput(s):
    // change: function (e, data) {}, // .bind('fileuploadchange', func);
    // Callback for paste events to the pasteZone(s):
    // paste: function (e, data) {}, // .bind('fileuploadpaste', func);
    // Callback for drop events of the dropZone(s):
    // drop: function (e, data) {}, // .bind('fileuploaddrop', func);
    // Callback for dragover events of the dropZone(s):
    // dragover: function (e) {}, // .bind('fileuploaddragover', func);

If you have some doubts about what's happening, just look at the code inside. 如果您对发生的事情有疑问,请查看内部代码。 This library is not compressed so it is easy to see. 此库未压缩,因此很容易看到。 for example 例如

// start: function (e) {}, // .bind('fileuploadstart', func);

start callback is implemented. start回调已实现。 fileuploadstart is not. fileuploadstart不是。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM