jQuery で読み込みスピナーを表示するにはどうすればいいですか? 質問する

jQuery で読み込みスピナーを表示するにはどうすればいいですか? 質問する

プロトタイプでは、次のコードを使用して「読み込み中...」画像を表示できます。

var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, 
onLoading: showLoad, onComplete: showResponse} );

function showLoad () {
    ...
}

jQueryでは、次のようにしてサーバー ページを要素に読み込むことができます。

$('#message').load('index.php?pg=ajaxFlashcard');

しかし、Prototype で行ったように、このコマンドに読み込みスピナーをアタッチするにはどうすればよいでしょうか?

ベストアンサー1

方法はいくつかあります。私が好む方法は、要素自体の ajaxStart/Stop イベントに関数をアタッチすることです。

$('#loadingDiv')
    .hide()  // Hide it initially
    .ajaxStart(function() {
        $(this).show();
    })
    .ajaxStop(function() {
        $(this).hide();
    })
;

ajaxStart/Stop 関数は、Ajax 呼び出しを行うたびに実行されます。

更新.ajaxStart/Stop: jQuery 1.8 のドキュメントでは、は にのみ添付する必要があると記載されていますdocument。これにより、上記のスニペットは次のように変換されます。

var $loading = $('#loadingDiv').hide();
$(document)
  .ajaxStart(function () {
    $loading.show();
  })
  .ajaxStop(function () {
    $loading.hide();
  });

おすすめ記事