.ajaxStop()

全てのAjaxリクエストが完了した際に呼び出されるハンドラを登録します。これはAjaxEventです。

.ajaxStop( handler() )

戻り値:jQuery

引数説明
handler()

型:Function()

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

Ajaxリクエストが完了すると、jQueryは未処理のAjax要求であるかどうかを確認します。 未処理のものが無ければ、jQueryはajaxStopイベントをトリガします。 .ajaxStop()メソッドによって登録されたハンドラが、この際に実行されます。 ajaxStopイベントは、最後の未処理のAjaxリクエストがbeforeSendのコールバック関数からfalseが返ることによって キャンセルされた際もトリガされます。

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

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

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

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

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

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

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

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

例: 全てのAjaxリクエストが停止された後に、ローディングメッセージを隠します。

$(document).ajaxStop(function() {
   $( "#loading" ).hide();
 });

 Back to top

© 2010 - 2017 STUDIO KINGDOM