He visto una serie de mensajes (append supposedly immediate) con respuestas aceptadas conflictivas sobre esto. Estamos usando jQuery 1.4 (http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js) y añadir() parece ser asíncrono, de tal manera que:¿Jquery append() se comporta de forma asíncrona?
Editado para mostrar el código en el contexto de devolución de llamada AJAX
...
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");
}
ejecuta y crea la página como se esperaba, pero la consulta de objetivos no produce nada en el tiempo de ejecución. Al ejecutar el mismo código en la consola JS, se recuperan los elementos como se esperaba.
Si este es el comportamiento esperado en JQuery, ¿cuál es la forma correcta de esperar hasta que termine append?
jQuery 1.8 ?? ¿¿Cómo?? Eres del futuro? :) – DrStrangeLove
Añadir es sincrónico pero tu llamada Ajax no lo es. ¿Dónde está ubicado este código? En la función de devolución de llamada de su llamada ajax? – Capsule
Editado con la versión correcta. Apuesto a que esto funcionaría de la manera que quiero en 1.8. – RSG