Ausführung anhalten

Sprint

Erfahrenes Mitglied
Hallo zusammen,

bei meinem aktuellen Projekt werden Formulare immer per JS verarbeitet. Nun ist es so, daß auf der linken Seite die verschiedenen Aufträge aufgelistet sind und mit einem Klick auf einen Auftrag werden die entsprechenden Daten in einem Formular auf der rechten Seite dargestellt. Beim Absenden werden die Daten per JS an das verarbeitende Script gesendet und es kommt ein ok oder ein error zurück. Soweit alles wunderbar.

Nun ist es so, daß zur Bestätigung über den Sendebutton für drei Sekunden ein Daumen hoch eingeblendet wird (Zeile 12). Und DANACH sollte die Auftragsliste aktualisiert werden und das Formular verschwinden.
Javascript:
$(document).ready(function () {
    $("#pep_form").submit(function () {
        $.ajax({
            type: "POST",
            url: "putpep.php",
            cache: false,
            data: $("#pep_form").serialize(),
            success: function (data) {
                if (data != "ok")
                    alert("error!!");
                else{
                    $("#pep_ok").fadeToggle().delay(3000).fadeToggle();
                    $('#pep_form').html('');
                    pep_getAuftraege();
                }
            }
        });
        return false;
    });
});
Das Problem ist jetzt einfach, daß er nach dem fadeToggle() nicht wartet und sofort das Formular geleert und die Liste aktualisiert wird. Kein Beinbruch, aber doch nicht wirklich hübsch. Kann ich ihn die drei Sekunden irgendwie aussitzen lassen, so daß er erst weitermacht, wenn der Daumen ausgeblendet ist?
 
Lösung
Bei fadeToggle ist laut Doku ein Callback möglich:
Code:
                    $("#pep_ok").fadeToggle().delay(3000)
                        .fadeToggle(function() {
                            $('#pep_form').html('');
                            pep_getAuftraege();
                    });
(ungetestet)
Allerdings ist dein Wunsch etwas ungewöhnlich weil sonst die Entwickler eher bemüht sind, die Vorgänge schnell abzuwickeln, damit der Benutzer nicht ungeduldig wird.
Bei fadeToggle ist laut Doku ein Callback möglich:
Code:
                    $("#pep_ok").fadeToggle().delay(3000)
                        .fadeToggle(function() {
                            $('#pep_form').html('');
                            pep_getAuftraege();
                    });
(ungetestet)
Allerdings ist dein Wunsch etwas ungewöhnlich weil sonst die Entwickler eher bemüht sind, die Vorgänge schnell abzuwickeln, damit der Benutzer nicht ungeduldig wird.
 
Lösung
Hat wunderbar funktioniert! Vielen Dank für die Hilfe!
Allerdings ist dein Wunsch etwas ungewöhnlich weil sonst die Entwickler eher bemüht sind, die Vorgänge schnell abzuwickeln, damit der Benutzer nicht ungeduldig wird.
Eigentlich hast du Recht, aber unseren Mädels ist eine klare Bestätigung lieber und sooo schnell läuft es bei uns auch nicht. Da ist mehr Denkarbeit gefragt.
 

Neue Beiträge

Zurück