2010-01-17 7 views
2

Salutations,jQuery Ajax Loader

Je voudrais savoir ce que dois-je faire pour faire apparaître un chargeur ajax ...

en fait je fais appel une fonction ajax ... tout va bien

voici comment cela se fait

$('#txtEmail').blur(function() 
    { 
     $.post("ajaxAvailability.aspx",{ email:$(this).val() } ,function(data) 
     { 
      if(data=='false') 

... 

maintenant, je voudrais avoir un chargeur si je l'ai fait comme ceci:

$('#loader').ajaxStart(function() { 
     $(this).show(); 
    }).ajaxStop(function() { 
     $(this).hide(); 
    }); 

Cela devrait fonctionner? ce qui se passe est que je reçois une exception dans les jquery.js ....

-Merci à l'avance

+0

quelle exception obtenez-vous? – Aly

+0

Cela me va bien ... votre '.post' fonctionne-t-il sans le chargeur show/hide? – Alconja

+0

oui le post fonctionne sans le show cacher avez-vous des ideia ??? l'exception est liée à cette return this.bind ("ajaxStart", f); objet non affecté f – Killercode

Répondre

0

Salutations, pour tout le monde

La solution à ce problème est correct, le jquery-1.3 .2-vsdoc2.js fichier

sur la fonction ajax il y a paramètre f, cela devrait être remplacé dans le rappel

1

que je fais habituellement dans mon code:

$('#txtEmail').blur(function(){ 
    var value = $(this).val(); 
    //display loader image 
    $("#indicator").html("<img src='PATH/loading.gif' alt='' /> Sending...").show(); 
    $.post(URL, 
    { email:value }, 
    function(data) { 
     $("#indicator").empty().hide(); 
     //... 
    }); 
)}; 

Dans le code ci-dessus, l'image animée apparaîtra dans l'élément DOM avec id="indicator". Une fois la requête AJAX terminée, j'ai vidé le conteneur, puis je l'ai caché. Ajustez ceci en fonction de votre élément de page.

Mon autre code utilise jQuery blockUI, généralement lors de la soumission du formulaire, pour éviter le double envoi. Consultez le site Web pour l'exemple d'utilisation.