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

Logic

- 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

<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

Смежные вопросы