.ajaxSuccess()

Ajaxリクエストが成功完了した際に実行したい関数を指定します。これはAjaxEventです。

.ajaxSuccess( handler(event, XMLHttpRequest, ajaxOptions) )

戻り値:jQuery

引数説明
handler(event, jqXHR, ajaxSettings, thrownError)

型:Function()

実行する関数を指定します。

Ajaxリクエストが成功した際に、jQueryはajaxSuccessイベントをトリガします。 .ajaxSuccess()メソッドによって登録されたハンドラが、この際に実行されます。

このメソッドの処理を観察するには、基本的なAjax loadリクエストを設定します。

<div class="trigger">トリガ</div>
<div class="result"></div>
<div class="log"></div>

documentに対して、イベントハンドラを登録します。

$(document).ajaxSuccess(function() {
  $( "div.log" ).text( "ajaxSuccessがトリガされました。" );
});

そして、任意のjQueryメソッドからAjaxリクエストを行います。 ユーザーがtrigeerクラスの要素をクリックし、Ajaxリクエストが成功すると、ログメッセージが表示されます。

$( "button.trigger" ).click(function() {
  $( "div.result" ).load( "ajax/missing.html" );
});

注: .ajaxSuccess()は、jQueryオブジェクトのインスタンスのメソッドとして実装されているため、thisを使用して、 選択した要素をコールバック関数内で参照することが出来ます。 しかしjQuery1.8で、.ajaxSuccess()メソッドはdocumentのみにしか使用できなくなりました。

全てのajaxSuccessハンドラは、どんなAjaxリクエストであろうと完了すれば実行されます。 ajaxSuccessが実行される際に、eventオブジェクト、XMLHttpRequestオブジェクト、リクエストに使用された設定(settings)オブジェクトが渡されます。 javaScriptが例外を発生させてリクエストが失敗した場合、例外オブジェクトが4つ目の引数として渡されます。

例えば、特別なURLに対してのみエラーのコールバック関数内で処理を行いたい場合は、次のようにします。

$(document).ajaxSuccess(function(event, xhr, settings) {
  if ( settings.url == "ajax/test.html" ) {
    $( ".log" ).text( "ajaxSuccessがトリガされました。Ajaxの受信内容: " +
                      xhr.responseText );
  }
});

追記: もし、$.ajax()または、$.ajaxSetup()によってglobalオプションをfalseに指定されていれば、 .ajaxSuccess()はトリガされません。

例:Ajaxが正常に完了した際に、メッセージを表示します。

$(document).ajaxSuccess(function(event, request, settings) {
  $( "#msg" ).append( "<li>リクエスト成功!</li>" );
});

 Back to top

© 2010 - 2017 STUDIO KINGDOM