Sweetalert: ¿Varias alertas dulces una tras otra?

Creado en 11 nov. 2015  ·  12Comentarios  ·  Fuente: t4t5/sweetalert

Oye,

Gracias por el dulce complemento, ¡me encanta!
Sin embargo, tengo un pequeño desafío cuando tengo que encadenar varios "Confirma" uno tras otro.

Si hace clic en "demasiado rápido" en el botón "Confirmar", la página simplemente se atasca y no responde, y las siguientes confirmaciones no se muestran.

Pasé por alto esto un poco, agregando un retraso a la llamada SWAL, pero si hace clic más rápido que el retraso, se romperá nuevamente.

Un bolígrafo que muestra el estuche:
http://codepen.io/anon/pen/dYQapo

Sin embargo, la página parece seguir respondiendo, pero el próximo SWAL no se muestra, solo brevemente, ya que el anterior se está desvaneciendo.

Y este bolígrafo mostrando el caso con un retraso, que si hace clic en confirmar antes de que termine de cargar el SWAL, simplemente deja de mostrar el siguiente.
http://codepen.io/anon/pen/QjJYdm

Similar / igual que # 433, # 359 & # 253.

¡Espero oír de usted! :)

Comentario más útil

Tengo el mismo problema que el anterior. Si alguien encuentra esto útil:

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

Para evitar que la alerta dulce se 'congele' al encadenar dos o más alertas, simplemente agregue un tiempo de espera menor. Quizás no sea la solución más elegante, pero funcionó para mí.

Todos 12 comentarios

Desafortunadamente, también encontré este error que prácticamente hizo que sweetalert fuera inutilizable para las necesidades de mi proyecto.

Es una pena, ya que no tengo tiempo para empezar a investigar el código para impulsar mi propia solución, pero me encanta la funcionalidad de la biblioteca. Estaré viendo esto para ver si se soluciona y, en el momento en que lo haga, puede contar a este desarrollador (y sus usuarios) como leales y dulces alertas.

Lamentablemente, parece que este proyecto ha sido abandonado.
Incluso el clon SweetAlert2, todavía tiene estos errores y no tiene actualizaciones durante mucho tiempo.

Es una lástima que lo hayan abandonado, ¡ya que es un proyecto muy bonito!

Pero 121 temas abiertos y 37 relaciones públicas no fusionadas. Es poco probable que se arregle o reciba actualizaciones pronto.

Sin embargo, hay un cambio con la posibilidad de # 457, que parece ser capaz de manejar este problema principal.

@inctor , @Charlex Escribí una guía sobre cómo usar la adición de código que escribí para hacer esto en # 457. Debido a que se agrega a la biblioteca de sweetalert existente, no requiere fusionarse en el proyecto / actualizar el código de la biblioteca. Si tiene pensamientos para mejorarlo, hágamelo saber.

@kentmw Héroe. Lo intentaré y veré si tengo algún dolor.

SweetAlert2 admite la cola de modales: https://sweetalert2.github.io/#chaining -modals

Tengo el mismo problema que el anterior. Si alguien encuentra esto útil:

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

Para evitar que la alerta dulce se 'congele' al encadenar dos o más alertas, simplemente agregue un tiempo de espera menor. Quizás no sea la solución más elegante, pero funcionó para mí.

@pararrayos bit hacky pero puede ser útil como solución temporal

Perdón por una demora tan larga. ¡Estos problemas ahora deberían solucionarse en SweetAlert 2.0, que usa promesas !

Muchas gracias por la actualización @ t4t5 . Me encanta el nuevo diseño del sitio web ¡Por cierto!

Si alguien se tropieza con esto y también se queda indefinido al llamar a swal (probablemente versiones anteriores). Así es como lo solucioné:

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

sí, esta solución solo es temporal. Pero está bien

@pararrayos gracias .. !!!

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

adiwithadidas picture adiwithadidas  ·  4Comentarios

xgqfrms-GitHub picture xgqfrms-GitHub  ·  4Comentarios

jamieson99 picture jamieson99  ·  3Comentarios

fracz picture fracz  ·  4Comentarios

girishbr picture girishbr  ·  5Comentarios