2016-08-23 31 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

我會隱藏整個事件的div而不是成功。 – edbird88

+0

無論你需要哪種方式,但這是強大的,我已經在現場實施這個,並像魅力工作!請理解,如果你放在外面,那麼DOM將直接執行而不用等待,所以可能會更好地圍繞AJAX請求/響應。無論如何,你可以玩弄它,因爲你現在有一個解決方案。 –

+1

你也可以設置一個全局的.ajaxStart(),並在每個調用中保存一些額外的行。 https://api.jquery.com/ajaxStart/ – DevlshOne

相關問題