2011-01-29 5 views
1

J'utilise un appel getJson pour les listes déroulantes. Je veux avoir un effet de préchargement d'image pour cet appel ajax. Quelqu'un peut-il m'aider avec cela ... ?? Mon code suivant:Je souhaite précharger une image avant l'appel getJson

$.getJSON("myAction.do?method=fetchThruAJAX", { 
    TypeNo: $("#Type").val(), 
    ajax: 'true' 
}, function(j) { 
    var options = '<option selected value="-1">---Select---</option>'; 
    if (j != null) { 
     $.each(j.Model, function(i, item) { 
      options += '<option value="' + item.SeqNo + '">' 
       + item.Name + '</option>'; 
     }); 
    } 
    $("select#Model").html(options); 
}); 

Répondre

1

Vous pouvez le faire en utilisant globalement la ajaxStart et ajaxStop événements:

$("#yourEffectContainerID").ajaxStart(function() { 
    $(this).fadeIn("fast"); 
}).ajaxStop(function() { 
    $(this).fadeOut("fast"); 
}); 

De cette façon, votre conteneur d'effet sera affiché pendant toutes requêtes AJAX (de sorte que le comportement ne se limite pas à l'appel spécifique getJSON() que vous émettez pour votre liste déroulante).

+0

Salut merci pour la réponse. Je le déclare gloabalement comme: '$ (document) .prêt (function() {$ ("# imageLoad"). AjaxStart (fonction() {$ (this) .fadeIn ("fast");}) .ajaxStop (function() {$ (this) .fadeOut ("fast");});}) 'et avoir mon conteneur div comme'

'Mais le code que vous avez donné ne fonctionne pas. Je pense que je le fais un peu mal. S'il vous plaît aidez-moi si vous avez un exemple de code pour obtenir une meilleure image sur ce – rahul

+0

@rahul, qui fonctionne pour moi dans [ce test approximatif] (http://jsfiddle.net/gJpYt/). –

+0

@frederic: mais n'est-ce pas un peu trop vite. J'essaye maintenant avec lent, laisse voir .... !!! ou ne pouvons-nous pas montrer l'image pour dire quelque 2 secondes que de le cacher ... ??? – rahul

Questions connexes