$.ajaxにおいては、
- 送信前 (beforeSend)
- 送信後 (complete)
- 送信成功 (success)
- 送信失敗 (error)
のように、様々なイベントをキャッチすることが可能ですが、そのコールバック関数が取る引数について。
$.ajaxのイベントには、$.ajaxのパラメータに指定するローカルイベントハンドラと、$ajaxCompleteのように指定するグローバルイベントハンドラがあります。違いは以下のとおりです。
- ローカルイベントハンドラ : 定義した$.ajaxのみ対象とするイベント
- グローバルイベントハンドラ : すべての$.ajaxを対象とするイベント(ajaxCompleteなど)
それぞれ、ステータスや、XMLHttpRequestオブジェクトなどが格納されるのですが、順番が異なるため、同じように実装すると、期待していたように動かないといったことが起こります。
グローバルイベントハンドラは多々有りましたがローカルイベントハンドラの引数の情報が見当たらなかった(参考文献の$.ajaxは公式だと思います)ので作成しておきます。
例)complete / ajaxCompleteの場合:
ローカルイベントハンドラ
$.ajax (
省略
complete : function(XMLHttpRequest, status){ },
)
グローバルイベントハンドラ
ajaxComplete(status, XMLHttpRequest, setting)
settingは、$.ajaxの引数や$.ajaxSetupによって設定したオプションが格納されます。
参考