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(...
?
Vous devez vous connecter pour publier un commentaire.
Tous les commentaires ont aidé à cela. J'ai été à la suite d'un hareng rouge dans la console.
Le problème n'était pas avec la synchronicité, c'est avec les lignes suivantes:
Nécessaires pour être
Bref, tout le monde était correct.
Jquery append() se comporte de manière synchrone.
Essayer cela, si les choses ne fonctionnent pas après un
append
.Plus De Détails:
append
est synchronediv
après uneappend
.append
est en effet tout à fait synchrone. Veuillez également noter que le JavaScript est mono-thread, et non à des choses (y compris le navigateur) sont la mutation de données en même temps.