2013-01-21 3 views
1

J'affiche les résultats d'une recherche définie par l'utilisateur dans un div (RTab) qui est masqué jusqu'à ce que la requête soit démarrée. Je souhaite afficher les résultats div dès que le bouton de recherche (cmdSub) a été cliqué, puis émettre la requête. AutoProc est une fonction PEAR AJAX qui remplit les résultats div.Ordre des événements de la diapositive jQuery

Le problème est que les diapos s'ouvrent une fois la requête terminée, alors que je veux qu'elle s'ouvre avant que la requête soit envoyée au serveur.

$("#cmdSub").click(function(){ 
     $('#RTab').show('slide', { direction: 'right' }, 100); 
     AutoProc('UsrQuery'); 
    }); 

J'ai essayé un certain nombre de choses telles que forcer redessiner l'interface utilisateur, liant mon appel AJAX à l'événement spectacle pour RTAB et assurer hasLayout est vrai en changeant l'affichage sans pareil et revenir à bloquer. Rien ne semble affecter l'ordre de l'opération. Il est toujours exécuté requête puis montrer la div! Très frustrant!

Où vais-je mal?

Modifier pour afficher la ligne finale corrigée:

$('#RTab').show('slide', { direction: 'right',complete: function(){AutoProc('Query');} }, 100); 

Répondre

1

On dirait que vous voulez exécuter votre fonction d'interrogation après l'animation complète, fixez votre fonction sur l'événement complete:

$("#cmdSub").click(function(){ 
    $('#RTab').show({ 
    complete: function(){ 
       AutoProc('UsrQuery'); 
       }, 
    duration: 100 
    });  
}); 

I Je ne connais pas de propriété "direction" dans $.show() cependant ...

+0

Parfait - je n'avais pas vu l'événement complet. Merci! – Rucia