私が使用している: https://github.com/blueimp/jQuery-File-Upload
done
基本的に、現在のコールバックを保存して、信じられないほど複雑な独自のコールバックで呼び出すことができる必要がありdone
ます (jquery ui ウィジェットには詳しくありません)。
これが私が役に立たないようにしようとしているコードです:
var $el = $('#fileupload');
$el.fileupload();
var olddone = $el.fileupload('option', 'done');
$el.fileupload('option', 'done', function(e, data) {
data = ... manipulate data ...;
return olddone(e, data);
});
私はテーマにさまざまなバリエーションを試しました:
return olddone.call(this, e, data);
と:
return olddone.call($el.data('fileupload'), e, data);
と:
return olddone.call($el[0], e, data);
そして、すべてのエラーは基本的に、それthis
が正しくなく、コンテキストが次のすべての呼び出しに対して正しくないことを教えてくれます。私は何を間違っていますか?特定のコールバックを多かれ少なかれサブクラス化しながら、元のコールバックを引き続き使用/呼び出すにはどうすればよいですか?
さらに悪いことに、 (参照を保存して呼び出す代わりに) 代わりにdone
コールバックのソースをコピーしolddone
ても機能しないようです。
this
jQuery UI Widgetオプション関数のコンテキストには何がありますか? なぜこれはとても複雑なのですか?私は何が欠けていますか?
編集:
いくつかのウィジェットのドキュメントを読んだ後、すべてのメソッドが常にウィジェット インスタンスとして呼び出されるthis
ようです。
olddone.call($el.data('fileupload'), e, data)
アップデート:
done:
ここにあるコールバックを保持しようとしていoptions
ます: https://github.com/blueimp/jQuery-File-Upload/blob/75d11179fd9c248c061c8eb428782bb556c8db0a/js/jquery.fileupload-ui.js#L139