UiDialog: close()-Befehl innerhalb onBeforeClose()

  • Hallo!

    folgende Funktion habe ich geschrieben und sie funktioniert.

    Grundsätzlich muss man in onBeforeClose() selbstständig für das Schließen sorgen, jedoch frage ich mich, wie ich den close()-Befehl innerhalb der Funktion am besten aufrufe.

    Ist es richtig, ihn von dort aus mittels UiDialog.close('myDialog') anzusprechen (also sozusagen "UiDialog innerhalb UiDialog") oder gibt es einen besseren "internen" Aufruf?

    Code
    UiDialog.openStatic('myDialog', null, {
        onBeforeClose: function() {
            // do something
            ...
            // close
            UiDialog.close('myDialog'); // best way?
        }
    });

    Viele Grüße!

    Less

    Edited 5 times, last by less (June 13, 2023 at 2:15 PM).

  • Ist es richtig, ihn von dort aus mittels UiDialog.close('myDialog') anzusprechen

    Ja, korrekt, denn deine Funktion wird nicht im Kontext der Dialog-Implementation ausgeführt sondern außerhalb. onBeforeClose wird nur aufgerufen, wenn das Schließen durch ein Klick auf das „X“ bzw. die „Escape“-Taste erfolgte. UiDialog.close() ist der programmatische Aufruf und berücksichtigt diesen Callback nicht.

    Ab WoltLab Suite 6.0 gibt es eine neue Dialog-API, die auf dem nativen Event-System des DOM basiert und damit auch deutlich komfortabler ist. Die alte (bisherige) API bleibt jedoch unverändert bestehen.

    Alexander Ebert
    Senior Developer WoltLab® GmbH

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!