jQuery UI-Dialogfeld Automatisches Schließen mithilfe von setTimeout

7

Ich versuche, meinen Dialog drei Sekunden nach dem Öffnen automatisch schließen zu lassen. Ich habe die folgenden Methoden ausprobiert:

%Vor%

Hier ist es im Zusammenhang:

%Vor%

Aber mit dieser Methode zeigt es sich nicht einmal! Ich vermute, dass die Close-Methode sofort aufgerufen wird, nachdem sie auf der Seite angezeigt wird. Das Protokoll zeigt keine Fehler.

Ich habe auch versucht, an das Ereignis dialogopen zu binden:

%Vor%

Der Dialog zeigt, aber schließt sich nicht automatisch. Auch hier kein Fehler in den Logs.

Kann ich 'this' nicht im Argument für $ in setTimeout verwenden?

    
daniel0mullins 31.10.2011, 14:19
quelle

2 Antworten

15

setTimeout ruft den Rückgabewert von $ ("# mydialog") auf. dialog ("close") nach 3 Sekunden. Sie wollen das Ganze als String werfen, und es sollte gut funktionieren. Ich glaube auch nicht, dass Sie 'dialogopen' binden wollen, bevor Sie den Dialog initialisieren. Unten sollte gut funktionieren:

%Vor%     
DefyGravity 31.10.2011, 14:32
quelle
8

Ich habe einen Artikel speziell für das Problem geschrieben, das Sie gerade erleben. Bitte lesen Sie das.

Kurz gesagt, Sie möchten $("#mydialog").dialog('close') mit einer Inline-Funktion überall dort umbrechen, wo sie aufgrund einer Verzögerung oder eines ausgelösten Ereignisses ausgeführt werden soll.

%Vor%

Der Dialog wird nicht einmal angezeigt, weil Sie ihn geschlossen haben, sobald Sie ihn in jedem Fall geöffnet haben.

    
airportyh 31.10.2011 14:22
quelle