2016-08-23 12 views
3

ajaxリクエストが実行されている間に、divコンテナにajax読み込みイメージを追加しようとしています。ajaxの実行中にイメージを表示する

私のjQueryのコードは、次のようになります。

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#store, #gender, #username").change(function() { 
      var store = $("#store").val(); 
      var gender = $("#gender").val(); 
      var receiver = $("#username").val(); 

      $.ajax({ 
       type: "POST", 
       data: { 
        "store" : store, 
        "gender" : gender, 
        "receiver" : receiver 
       }, 
       url: "handling/ajax/store_items_ajax.php", 
       success: function(data){ 
        $("#result").html(data); 
       } 
      }); 
     }); 
    }); 
</script> 

どのように私は次のhtmlのdivにロード画像を追加します。

<div id="result" class="col-md-12"></div> 

誰もがこれを知っていますか?

+0

[jqueryのAjaxの読み込み画像(http://stackoverflow.com/questions/8761713/jquery-ajax-loading-image)の可能性のある重複 –

答えて

4

ロジック

- Create progress div element 
<div id="progress"> 
    <img style="width:100%" src="/images/spinner.gif"/> 
</div> 

- By default hide this progress div 
- Show when passing ajax request 
- Hide when you get ajax response 

スクリプト

<script type="text/javascript"> 

    $(document).ready(function() { 

     $("#store, #gender, #username").change(function() { 
     var store = $("#store").val(); 
     var gender = $("#gender").val(); 
     var receiver = $("#username").val(); 

     $('#progress').show(); //show progress bar 

     $.ajax({ 
      type: "POST", 
      data: { 
       "store" : store, 
       "gender" : gender, 
       "receiver" : receiver 
      }, 
      url: "handling/ajax/store_items_ajax.php", 
      success: function(data){ 
       $('#progress').hide(); //hide progress bar 
       $("#result").html(data); 
      } 
     }); 
     }); 

    }); 

</script> 
+1

私はsuccesではなくcompleteイベントでdivを非表示にします。 – edbird88

+0

どちらの方法が必要ですが、これは堅牢です。私はライブサイトでこれを実装しており、魅力的です!あなたがそれを待たずにDOMを直接実行するので、AJAXの要求/応答の周りの方が良い場合があります外に置く場合はご理解ください。とにかく、解決策があるので、あなたはその周りを遊ぶことができます。 –

+1

グローバルな.ajaxStart()を設定して、それぞれの呼び出しで余分な行を節約することもできます。 https://api.jquery.com/ajaxStart/ – DevlshOne

関連する問題