Sweetalert: Vários Sweet Alerts após o outro?

Criado em 11 nov. 2015  ·  12Comentários  ·  Fonte: t4t5/sweetalert

Ei,

Obrigado pelo plugin legal, realmente adorei!
No entanto, tenho um pequeno desafio quando preciso encadear vários "confirmações" um após o outro.

Se você clicar em "muito rápido" no botão "Confirmar", a página simplesmente trava e deixa de responder, e as próximas confirmações não aparecem.

Ignorei isso um pouco, adicionando um atraso à chamada SWAL, mas se você clicar mais rápido do que o atraso, ele será interrompido novamente.

Uma caneta mostrando a caixa:
http://codepen.io/anon/pen/dYQapo

No entanto, a página parece responder, mas o próximo SWAL não é mostrado, apenas em breve, pois o antigo está desaparecendo.

E essa caneta mostrando o case com um delay, que se você clicar em confirmar antes de terminar de carregar o SWAL, ela só deixa de mostrar o próximo.
http://codepen.io/anon/pen/QjJYdm

Semelhante / igual a # 433, # 359 e # 253.

Eu espero ouvir de você! :)

Comentários muito úteis

Eu tenho o mesmo problema acima. Se alguém achar isso útil:

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

Para evitar que o alerta "congele" ao encadear dois ou mais alertas, basta adicionar um tempo limite menor. Talvez não seja a solução mais sofisticada, mas funcionou para mim.

Todos 12 comentários

Infelizmente, também encontrei esse bug, que praticamente tornou o sweetalert inutilizável para as necessidades do meu projeto.

É uma pena, pois não tenho tempo para começar a vasculhar o código para fazer minha própria correção, mas adoro a funcionalidade da biblioteca. Estarei observando isso para ver se isso é consertado e, no momento em que isso acontecer, você pode contar este desenvolvedor (e seus usuários) como alerters doces e leais.

Infelizmente, parece que este projeto foi abandonado.
Mesmo o clone SweetAlert2, ainda tem esses bugs e nenhuma atualização por um bom tempo.

É uma pena que tenha sido abandonado, pois é um projeto muito legal!

Mas 121 questões em aberto e 37 relações públicas não fundidas. É improvável que seja corrigido ou receba atualizações em breve.

No entanto, há uma mudança com a possibilidade de # 457, que parece ser capaz de lidar com esse problema principal.

@inctor , @Charlex Eu escrevi um guia sobre como usar a adição de código que escrevi para fazer isso em # 457. Porque adiciona em cima da biblioteca sweetalert existente, não requer fusão no projeto / atualização do código da biblioteca. Se você tiver ideias para torná-lo melhor, me avise.

@kentmw Hero. Vou tentar e ver se sinto alguma dor.

SweetAlert2 suporta fila de modais: https://sweetalert2.github.io/#chaining -modals

Eu tenho o mesmo problema acima. Se alguém achar isso útil:

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

Para evitar que o alerta "congele" ao encadear dois ou mais alertas, basta adicionar um tempo limite menor. Talvez não seja a solução mais sofisticada, mas funcionou para mim.

@pararrayos bit hacky, mas pode ser útil como uma correção temporária

Desculpem a demora, gente. Esses problemas agora devem ser corrigidos no SweetAlert 2.0, que usa promessas !

Muito obrigado pela atualização @ t4t5 . Amando o novo layout do site BTW!

Se alguém tropeçar nisso e também ficar indefinido ao chamar swal (provavelmente versões mais antigas). Veja como eu resolvi isso:

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

sim esta correção apenas para o temporário. mas tudo bem

@pararrayos obrigado .. !!!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

AlexV525 picture AlexV525  ·  4Comentários

fracz picture fracz  ·  4Comentários

blackrosezy picture blackrosezy  ·  6Comentários

Lusitaniae picture Lusitaniae  ·  4Comentários

vmitchell85 picture vmitchell85  ·  6Comentários