2009-09-08 6 views
6

Ich versuche, einen modalen Ladedialog zu öffnen, während ich einen Ajax-Aufruf mache, aber er wird nicht in der onClick-Funktion angezeigt. Wenn ich es mit Feuerwanze bremse und durch die Ladefläche gehe, wird es angezeigt. Läuft das nur JavaScript vor sich selbst? Gibt es einen besseren Weg, dies zu tun?jQuery-Dialog erscheint nicht beim Aufruf

$(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

Haben Sie das jemals gelöst? Ich habe das gleiche Problem. – xenon

+3

nein Ich zog das Projekt – ErsatzRyan

+0

Ok, danke. Ich kann mich nicht einmal erinnern, wie ich das Problem jetzt gelöst habe: P – xenon

Antwort

1

Nur eine Idee, versuchen Sie die ‚Auto-Open‘ auf false gesetzt wird, wenn der Dialog zu schaffen:

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

Im Moment der Dialog sagen zu öffnen, wenn sie erstellt wird. Dies sollte dieses Verhalten verhindern.

+0

nein, das hat es nicht behoben – ErsatzRyan

+0

Wie auch immer, es sollte da drin sein. :) – Ryall

1

@ErsatzRyan

Haben Sie versucht, Ihre Javascript-Funktion gesetzt zu laden, nachdem Sie das Dokument fertig ist?

So:

$(document).ready(function(){ 

//Your functions 

}); 

Und als @Nat Ryall sagte, können Sie Ihre Auto-Open auf false setzen müssen, sonst wird Ihr Dialog nicht zweimal geöffnet.

Und eine andere Sache, versuchen Sie, Ihre $(".selector").dialog("open") nachdem Sie alles getan haben. Sie sagen Ihrer Funktion, den Dialog aufzurufen, bevor er den Inhalt geladen hat.

+0

die $ (function() {}); Syntax, die er verwendet, ist gleichwertig. Siehe [spec für bereit] (http://api.jquery.com/ready/). –

+0

Das ist, was es für mich repariert hat. Das Erstellen des Dialogfelds, bevor das Dokument bereit ist, funktioniert scheinbar nicht, auch wenn keine Fehler angezeigt werden und Sie nicht versuchen, es anzuzeigen. –

Verwandte Themen