Ich benutze das jquery-ui-dialog
Plugin
Ich suche nach einer Möglichkeit, die Seite zu aktualisieren, wenn unter bestimmten Umständen der Dialog geschlossen wird.
Gibt es eine Möglichkeit, ein nahes Ereignis aus dem Dialogfeld zu erfassen?
Ich weiß, dass ich Code ausführen kann, wenn auf die Schaltfläche zum Schließen geklickt wird, aber das gilt nicht für das Schließen des Benutzers mit Escape oder das x in der oberen rechten Ecke.
$('div#popup_content')
richtig? Womit soll ich das ersetzen, wenn ich bedenke, dass mein Dialog so geöffnet wirdjQuery.fn.dialog.open({})
$('body').on('dialogclose', '.ui-dialog', function(){...});
Ich glaube, Sie können dies auch beim Erstellen des Dialogs tun (kopiert von einem Projekt, das ich durchgeführt habe):
Hinweis
close: CloseFunction
quelle
var CloseFunction = function() { //Do your custom closing stuff here };
overlay
zweimal. Das ist doch nicht nötig, oder?quelle
Die Eigenschaft "close" des Dialogfelds gibt das Ereignis close für dasselbe an.
quelle
Sie können dies auch versuchen
quelle
Das hat bei mir funktioniert ...
quelle
Weil niemand tatsächlich eine Antwort mit using erstellt hat.
on()
stattdessen habebind()
ich beschlossen, eine zu erstellen.quelle
Fügen Sie die Option 'Schließen' wie unter Beispiel hinzu und führen Sie die gewünschte Inline-Funktion aus
quelle
Wenn ich den Fenstertyp verstehe, von dem Sie sprechen, würde $ (window) .unload () (für das Dialogfenster) Ihnen nicht den Haken geben, den Sie benötigen?
(Und wenn ich es falsch verstanden habe und Sie über ein Dialogfeld sprechen, das über CSS und nicht über ein Popup-Browserfenster erstellt wurde, sind alle Möglichkeiten zum Schließen dieses Fensters Elemente, für die Sie Click-Hander registrieren können.)
Bearbeiten: Ah, ich sehe jetzt, dass Sie über jquery-ui-Dialoge sprechen, die über CSS erstellt werden. Sie können das X einbinden, das das Fenster schließt, indem Sie einen Klick-Handler für das Element mit der Klasse ui-dialog-titlebar-close registrieren .
Nützlicher ist vielleicht, wenn Sie Ihnen sagen, wie Sie das schnell herausfinden können. Öffnen Sie während der Anzeige des Dialogfelds einfach FireBug und Inspect die Elemente, die das Fenster schließen können. Sie werden sofort sehen, wie sie definiert sind, und das gibt Ihnen das, was Sie zum Registrieren der Klick-Handler benötigen.
Um Ihre Frage direkt zu beantworten, glaube ich, dass die Antwort wirklich "Nein" ist - es gibt kein nahes Ereignis, das Sie einbinden können, aber "Ja" - Sie können alle Möglichkeiten einbinden, um das Dialogfeld ziemlich einfach zu schließen und zu erhalten was du willst
quelle
Sie können den folgenden Code zum Erfassen des Abschlussereignisses für ein Element verwenden: Seite, Dialogfeld usw.
quelle