Sweetalert: Mehrere Sweet Alerts nacheinander?

Erstellt am 11. Nov. 2015  ·  12Kommentare  ·  Quelle: t4t5/sweetalert

Hey,

Danke für das süße Plugin, liebe es wirklich!
Allerdings habe ich eine kleine Herausforderung, wenn ich mehrere "Confirms" hintereinander verketten muss.

Wenn Sie auf die Schaltfläche "Bestätigen" auf "zu schnell" klicken, bleibt die Seite einfach hängen, reagiert nicht mehr und die nächsten Bestätigungen werden nicht angezeigt.

Ich habe dies leicht umgangen, indem ich dem SWAL-Aufruf eine Verzögerung hinzugefügt habe, aber wenn Sie schneller als die Verzögerung klicken, wird er wieder unterbrochen.

Ein Stift, der den Fall zeigt:
http://codepen.io/anon/pen/dYQapo

Die Seite scheint jedoch responsive zu bleiben, aber die nächste SWAL wird nicht angezeigt, nur kurz, da die alte ausgeblendet wird.

Und dieser Stift zeigt den Fall mit einer Verzögerung an, dass, wenn Sie auf Bestätigen klicken, bevor das Laden der SWAL abgeschlossen ist, einfach nicht mehr die nächste angezeigt wird.
http://codepen.io/anon/pen/QjJYdm

Ähnlich/gleich wie #433, #359 & #253.

Ich hoffe, von Ihnen zu hören! :)

Hilfreichster Kommentar

Ich habe das gleiche Problem wie oben. Falls das jemand nützlich findet:

swal({
            //whatever parameters in first sweet alert
    },
        function(){
                        setTimeout(function(){
                             swal({ //whatever parameters in second sweet alert});
                       }, time);
     });

Um ein "Einfrieren" von Sweet Alerts bei der Verkettung von zwei oder mehr Alerts zu vermeiden, fügen Sie einfach eine geringfügige Zeitüberschreitung hinzu. Vielleicht nicht die schickste Lösung, aber bei mir hat es funktioniert.

Alle 12 Kommentare

Leider bin ich auch auf diesen Fehler gestoßen, der Sweetalert für die Bedürfnisse meines Projekts ziemlich unbrauchbar machte.

Es ist eine Schande, da ich nicht die Zeit habe, im Code herumzustöbern, um meinen eigenen Fix zu pushen, aber ich liebe die Funktionalität der Bibliothek. Ich werde dies beobachten, um zu sehen, ob es behoben wird, und sobald dies der Fall ist, können Sie diesen Entwickler (und seine Benutzer) als treue, süße Warner zählen.

Leider fühlt es sich an, als ob dieses Projekt aufgegeben wurde.
Auch der Klon SweetAlert2 hat diese Bugs noch lange und keine Updates mehr.

Es ist wirklich schade, dass es aufgegeben wurde, da es ein wirklich schönes Projekt ist!

Aber 121 offene Fragen und 37 nicht zusammengeführte PRs. Es ist unwahrscheinlich, dass es bald behoben wird oder Updates erhält.

Es gibt jedoch eine Änderung mit der Möglichkeit von #457 , die dieses primäre Problem anscheinend lösen kann.

@inctor , @Charlex Ich habe eine Anleitung zur Verwendung der Code-Ergänzung geschrieben, die ich dazu in #457 geschrieben habe. Da es über die vorhandene Sweetalert-Bibliothek hinzugefügt wird, ist keine Zusammenführung mit dem Projekt/eine Aktualisierung des Bibliothekscodes erforderlich. Wenn Sie Ideen haben, um es besser zu machen, lassen Sie es mich wissen.

@kentmw Held. Ich werde es versuchen und sehen, ob ich irgendwelche Schmerzen habe.

SweetAlert2 unterstützt die Modal-Warteschlange: https://sweetalert2.github.io/#chaining -modals

Ich habe das gleiche Problem wie oben. Falls das jemand nützlich findet:

swal({
            //whatever parameters in first sweet alert
    },
        function(){
                        setTimeout(function(){
                             swal({ //whatever parameters in second sweet alert});
                       }, time);
     });

Um ein "Einfrieren" von Sweet Alerts bei der Verkettung von zwei oder mehr Alerts zu vermeiden, fügen Sie einfach eine geringfügige Zeitüberschreitung hinzu. Vielleicht nicht die schickste Lösung, aber bei mir hat es funktioniert.

@pararrayos etwas hacky, kann aber als vorübergehende Lösung nützlich sein

Sorry für so lange Verspätung Leute. Diese Probleme sollten jetzt in SweetAlert 2.0 behoben sein, das Versprechen verwendet !

Vielen Dank für das Update @t4t5 . Ich liebe das neue Website-Layout übrigens!

Falls jemand darüber stolpert und auch beim Aufruf von swal (wahrscheinlich ältere Versionen) undefiniert wird. So habe ich es umgangen:

if(notifications.length > 1) {
            var i = 0;
            function displayNext(){
                swal({title: notifications[i].title, text: notifications[i].body, type: 'info', closeOnConfirm:true}, function(){
                    if(i < notifications.length){
                        setTimeout(function(){
                            displayNext();
                        },500);
                    }
                });
                i++;
            }
            displayNext();
        }

ja dieser Fix nur für die vorübergehende. aber es ist ok

@pararrayos danke..!!!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

rafatux picture rafatux  ·  5Kommentare

rapeflower picture rapeflower  ·  4Kommentare

Untit1ed picture Untit1ed  ·  5Kommentare

jamieson99 picture jamieson99  ·  3Kommentare

waldyrious picture waldyrious  ·  5Kommentare