2009-10-14 17 views
5

Estoy intentando hacer algo como boxy, facebox o lightbox ... y así sucesivamente. El único problema es que no sé cómo precargar la página que se carga en el cuadro a través del método load().jquery precarga la página cargada mediante el método load()

Se debe trabajar de esta manera:

  1. Se aparece el cuadro se añade
  2. Cargando animación
  3. Cuando la página se carga la animación desaparece

por eso es necesario saber cuándo la página se carga para eliminar la animación.

Respuesta

3
var function_for_display_animation = function(){ 
    //display animation 
} 
var function_for_remove_animation = function(){ 
    //remove animation 
} 

function_for_display_animation(); 
$(selector).load('page.php',function_for_remove_animation); 

o:

$().ajaxSend(function(evt, request, settings){ 
    //start animation 
}); 

$().ajaxComplete(function(event,request, settings){ 
    //end animation 
}); 

$(selector).load('page.php', function(){ 
    //work 
}); 
+1

gracias por su respuesta, por lo que la función de devolución de llamada es la clave – kmunky

1

Si lo entiendo correctamente, usted está diciendo que debido a que una página en su sitio tardará un poco en cargarse, le gustaría mostrar un mensaje de carga amigable inmediatamente y desaparecer una vez que se cargue la página.

El truco para esto no se está descargando mucho cuando la página se carga por primera vez. Solo el mensaje de carga y algo de JavaScript.

Lo que hace que esto funcione es que en su función $ (documento) .ready() usará AJAX para obtener los datos lentos. Una vez que la consulta AJAX vuelve, use JS para llenar la página con los datos y luego apague el mensaje de carga.

+0

hmm ... en realidad eso es mi pregunta, ¿Cómo puedo "ver" cuando está bien para quitar la animación de carga? algo así es suficiente? $ (selector) .load ('page.php', function() { $ ('. Animation'). Remove(); }); – kmunky

Cuestiones relacionadas