2010-04-30 26 views
12

Estoy usando JQuery y lo que quiero que suceda es.jquery fadeout, load, fadein

Div desaparece con el comando fadeOut. A continuación, carga contenido de una url usando el comando de carga. Luego, una vez cargado el contenido, vuelve a fundirse usando el comando fadeIn.

El código que tengo es:

$("#myDiv").fadeOut().load('www.someurl.com').fadeIn() 

Sin embargo, esto no funciona. En cierto modo parpadea, luego se descarga y luego se carga. Creo que el problema es que el desvanecimiento ocurre antes de que la carga se complete.

¿Qué debo hacer

Gracias

Respuesta

11

puede utilizar la función load() devolución de llamada como esto:

es posible que desee utilizar el estado de la carga() para ver si todo fue completado correctamente

$("#myDiv").fadeOut().load("www.someurl.com", function(response, status, xhr) { 
    if (status == "error") { 
     // handle error 
    } 
    else 
    { 
     $(this).fadeIn(); 
    } 
}); 
+0

Se debe esto a la "carga" es asíncrono y las otras acciones continuará trabajando? Su respuesta esperará a llamar a "fadeIn" después de cargar los informes que está hecho, ¿correcto? – MrChrister

+0

sí, una vez que la carga ha terminado llamará a fadeIn() – hunter

5

Utilizar la devolución de llamada para success.load(), así:

$("#myDiv").fadeOut().load('www.someurl.com', function() { 
    $(this).fadeIn(); 
}); 
1

que tiene que hacer la decoloración en la función de devolución de llamada de carga debido a la naturaleza asíncrona de AJAX.

9
$("#myDiv").fadeOut(1000, function() { 
    $("#myDiv").load("www.someurl.com", {limit: 25}, function(){ 
     $("#myDiv").fadeIn(); 
    }); 
}); 

El límite especifica cuánto tiempo el tiempo de espera para una respuesta en la llamada carga