7

jQuery fileuploadプラグインを使用していますが、fileuploadが完了したら、カスタムのjQueryを実行したいと思います。

ここから https://github.com/blueimp/jQuery-File-Upload/wiki/Options

今それはこれを言います

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

これで、自分のjsファイルでテストするためにこのカスタム関数を定義しました

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

しかし、それは機能していません。

しかし、ここでメインファイルを編集すると

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

その後、それは動作します。

4

2 に答える 2

8

サーバー側のアップロード スクリプトが JSON 応答を返すかどうかを確認します。私の場合、応答が空の場合は機能しませんでしたが、ファイルは正常にアップロードされました。

したがって、以下はjQuery 1.9.1と「jQueryファイルアップロードプラグイン」の最新バージョン-5.21.3で機能しています。

$("#fileupload").bind("fileuploaddone", function (e, data) {
    console.log("fileuploaddone event fired");
});
于 2013-03-14T20:05:20.563 に答える
5

ライブラリ コードを見ると、すべてのイベントの名前が変更され、「fileupload」が削除されているようです...そのため、「fileuploaddone」は「done」になります。他のすべてのコールバックに有効です。このセクションを見てください:

    // 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);

何が起こっているのか疑問がある場合は、内部のコードを見てください。このライブラリは圧縮されていないため、見やすいです。例えば

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

startコールバックが実装されています。fileuploadstartではありません。

于 2012-10-15T08:02:43.407 に答える