N'Jquery append() se comportent de manière asynchrone?

J'ai vu un certain nombre de postes (ajouter soi-disant immédiate) avec en conflit réponses acceptées sur ce. Nous sommes à l'aide de JQuery 1.4 (http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js) et append() semble être asynchrone, tels que:

Modifiée pour afficher du code dans le contexte de l'AJAX rappel

 ...
 var message = $.ajax({
   type: "GET",
   url: "/getVolumes/" +  _Id,
   async: false 
 }).responseText;
 if (parseInt(message) != 0){
   var $results = $(message);
   $MAIN_DIV.append($results);
   retrieveTargets();
 }
...    
function retrieveTargets(){
  var $targets = $(".resultTargets");
}

Exécute et crée la page comme prévu, mais les objectifs de la requête donne rien au moment de l'exécution. Exécute le même code dans le JS console récupère les éléments comme prévu.

Si c'est le comportement attendu en JQuery ce est la bonne façon d'attendre jusqu'à ce que append est fini?

  • jQuery 1.8?? comment venir?? Vous avez de l'avenir?? 🙂
  • Append est synchrone, mais votre appel Ajax n'est pas. Où est ce code? Dans la fonction de rappel de votre appel ajax?
  • Édité avec la bonne version. Je parie que ce serait la façon dont je le veux en 1.8.
  • qu'est-ce que .resultTargets? est-il un élément dans votre réponse ajax? Vous pourriez y accéder de cette façon: var cibles = $résultats.find('.resultTargets');
  • Qu'advient-il si vous placez console.log( $MAIN_DIV.length ) juste avant la $MAIN_DIV.append(...?
InformationsquelleAutor RSG | 2011-02-22