Sweetalert: Plusieurs alertes sucrées les unes après les autres ?

Créé le 11 nov. 2015  ·  12Commentaires  ·  Source: t4t5/sweetalert

Hey,

Merci pour le plugin doux, j'adore vraiment!
Cependant, j'ai un petit défi lorsque je dois enchaîner plusieurs "Confirmations" les unes après les autres.

Si vous cliquez sur "trop ​​vite" sur le bouton "Confirmer", la page se bloque et ne répond plus, et les quelques confirmations suivantes ne s'affichent pas.

J'ai légèrement contourné cela en ajoutant un délai à l'appel SWAL, mais si vous cliquez plus rapidement que le délai, il se brisera à nouveau.

Un stylo montrant l'étui :
http://codepen.io/anon/pen/dYQapo

Cependant, la page semble rester réactive, mais le SWAL suivant n'est pas affiché, seulement peu de temps car l'ancien s'estompe.

Et ce stylo montrant le boîtier avec un retard, que si vous cliquez sur confirmer avant la fin du chargement du SWAL, il arrête simplement d'afficher le suivant.
http://codepen.io/anon/pen/QjJYdm

Similaire/identique aux #433, #359 & #253 .

J'espère avoir des nouvelles de toi! :)

Commentaire le plus utile

J'ai le même problème que ci-dessus. Si quelqu'un trouve cela utile :

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

Pour éviter que l'alerte douce ne se fige lors de l'enchaînement de deux alertes ou plus, ajoutez simplement un délai d'attente mineur. Peut-être pas la solution la plus sophistiquée mais cela a fonctionné pour moi.

Tous les 12 commentaires

Malheureusement, j'ai également rencontré ce bogue qui a pratiquement rendu sweetalert inutilisable pour les besoins de mon projet.

C'est dommage car je n'ai pas le temps de commencer à fouiller dans le code pour pousser mon propre correctif, mais j'aime les fonctionnalités de la bibliothèque. Je vais regarder cela pour voir si cela est corrigé et au moment où cela se produit, vous pouvez compter ce développeur (et ses utilisateurs) comme de fidèles alerteurs.

Malheureusement, j'ai l'impression que ce projet a été abandonné.
Même le clone SweetAlert2, a toujours ces bugs et aucune mise à jour depuis très longtemps.

C'est vraiment dommage, qu'il ait été abandonné, car c'est un très beau projet !

Mais 121 problèmes ouverts et 37 PR non fusionnés. Il est peu probable que cela soit corrigé ou que des mises à jour soient bientôt disponibles.

Cependant, il y a du changement avec la possibilité de #457 , qui semble être capable de gérer ce problème principal.

@inctor , @Charlex J'ai écrit un guide sur la façon d'utiliser l'ajout de code que j'ai écrit pour le faire au n° 457. Parce qu'il s'ajoute à la bibliothèque sweetalert existante, il ne nécessite pas de fusion dans le projet/la mise à jour du code de la bibliothèque. Si vous avez des idées pour l'améliorer, faites le moi savoir.

@kentmw Héros. Je vais essayer et voir si j'ai mal.

SweetAlert2 supports modaux file d' attente: https://sweetalert2.github.io/#chaining -modals

J'ai le même problème que ci-dessus. Si quelqu'un trouve cela utile :

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

Pour éviter que l'alerte douce ne se fige lors de l'enchaînement de deux alertes ou plus, ajoutez simplement un délai d'attente mineur. Peut-être pas la solution la plus sophistiquée mais cela a fonctionné pour moi.

@pararrayos un peu hacky mais peut être utile comme solution temporaire

Désolé pour un si long retard les gens. Ces problèmes devraient maintenant être corrigés dans SweetAlert 2.0, qui utilise des promesses !

Merci beaucoup pour la mise à jour

Si quelqu'un trébuche sur cela et devient également indéfini lors de l'appel de swal (probablement des versions plus anciennes). Voici comment j'ai travaillé dessus :

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();
        }

oui ce correctif uniquement pour le temporaire. mais c'est OK

@pararrayos merci..!!!

Cette page vous a été utile?
0 / 5 - 0 notes