2009-09-08 20 views
6

Estoy intentando que aparezca un cuadro de diálogo de carga modal mientras realizo una llamada ajax pero no aparece en la función onClick. Si disminuyo la velocidad con Firebug y paso por el panel de carga se mostrará. ¿Es esto solo javascript corriendo por delante de sí mismo? ¿Hay una mejor manera de hacer esto?El cuadro de diálogo jQuery no aparece cuando se llama

$(function(){ 
    $("#loading_panel").dialog({ 
           modal:true, 
           position:'center', 
           minHeight:40 
           }); 

    $("a.view-in-frame").click(function(){ 
         $("#loading_panel").dialog('open'); 
         $("#tabs").hide(); 
         var blog = $(document.createElement('div')).attr('id', 'blog').load(('blog_reader.php?blog='+this.href)), $("#loading_panel").dialog('close')); 
         $("#content_wrap").append(blog); 
         return false; 
       }); 
}) 
+0

¿Alguna vez resolvió esto? Estoy teniendo el mismo problema. – xenon

+3

no Me mudé del proyecto – ErsatzRyan

+0

Ok, gracias. Ni siquiera puedo recordar cómo resolví el problema ahora: P – xenon

Respuesta

1

Sólo una idea, intente configurar el 'Autoopen' false al crear el diálogo:

$("#loading_panel").dialog({ 
          modal:true, 
          position:'center', 
          minHeight:40, 
          autoOpen:false 
          }); 

Por el momento le está diciendo al diálogo para abrir cuando se crea. Esto debería evitar ese comportamiento.

+0

no eso no lo solucionó – ErsatzRyan

+0

De cualquier manera, debería estar allí. :) – Ryall

1

@ErsatzRyan

¿Ha intentado establecer su función javascript para cargar después de que su documento está listo?

De esta manera:

$(document).ready(function(){ 

//Your functions 

}); 

Y como @Nat Ryall dijo, debe configurar su Autoopen a false, de lo contrario su diálogo no se abre dos veces.

Y otra cosa, intente llamar a su $(".selector").dialog("open") después de haber hecho todo. Le está diciendo a su función que llame a su cuadro de diálogo antes de que haya cargado su contenido.

+0

$ (función() {}); la sintaxis que está usando es equivalente. Ver la [especificación para listo] (http://api.jquery.com/ready/). –

+0

Esto es lo que me solucionó. La creación del cuadro de diálogo antes de que el documento esté listo aparentemente no funciona, incluso si no se generan errores y no intenta mostrarlo. –

Cuestiones relacionadas