jQuery Ajax image de chargement ne se charge pas sur appel ajax

J’utilise l’extrait de code jQuery ci-dessous pour une image de chargement ajax que j’utilise sur de nombreux sites.

jQuery:

$(".loading").hide().ajaxStart(function() { $(this).show(); }).ajaxStop(function() { $(this).hide(); }); 

Exemple d’appel Ajax (fonctionne comme prévu et renvoie les données correctes):

 $('#list').change(function() { var vCID = 1; if ($.sortingm(vCID) && vCID != 0) { var vData = {aid:1001,id:vCID}; $.ajax( { url : "ajax.php", type: "POST", data : vData, success: function(data, textStatus, jqXHR) { $('#itemList').html(data); } }); } }); 

HTML:

 
 

CSS:

 .loading { width: 40px; height: 40px; margin: 10px auto 0 auto; background: url('images/loading.gif') no-repeat; } 

Le code HTML est affecté par jQuery en tant display: none n’est ajouté au chargement de la page, il n’y a pas d’erreurs et si je change d’ display: block sur le code HTML via firebug, l’image loading.gif apparaît.

Toute aide grandement appréciée.

vous pouvez le faire avec les méthodes beforeSend et complete :

  $.ajax({ url: "ajax.php", type: "POST", data: vData, beforeSend: function () { $(".loading").show(); // <----show before sending }, success: function (data, textStatus, jqXHR) { $('#itemList').html(data); }, complete: function () { $(".loading").hide(); // on complete of ajax hide it. } }); 

Peut-être essayer de le changer pour

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

Au lieu de l’enchaîner à $('.loading') qui ne peut pas déclencher un ajaxStart() .