甜蜜的警觉。在警告框中显示倒计时

时间:2016-04-27 11:10:24

标签: javascript jquery sweetalert

我在sweetalert消息中显示倒计时时遇到问题。点击后我使用" A消息和自动关闭计时器"。我希望倒计时在消息中,用户可以看到倒计时。

swal({  
    title: "Please w8 !",
    text: "Data loading...",
    timer: 10000,
    showConfirmButton: false 
});

2 个答案:

答案 0 :(得分:14)

使用SweetAlert是不可能的。它不支持对UI进行计数。但永远不要说永远: - )

我准备了一个小黑客,它可以帮助你做到这一点。只需将下面的代码添加到您的应用程序中,您就会看到实时计数机制。并且不要忘记添加jQuery。

var
    closeInSeconds = 5,
    displayText = "I will close in #1 seconds.",
    timer;

swal({
    title: "Auto close alert!",   
    text: displayText.replace(/#1/, closeInSeconds),   
    timer: closeInSeconds * 1000,   
    showConfirmButton: false 
});

timer = setInterval(function() {

    closeInSeconds--;

    if (closeInSeconds < 0) {

        clearInterval(timer);
    }

    $('.sweet-alert > p').text(displayText.replace(/#1/, closeInSeconds));

}, 1000);

结果:

enter image description here

答案 1 :(得分:6)

这是更好的解决方案

var timer = 10, // timer in seconds
    isTimerStarted = false;

(function customSwal() {
    swal({  
        title: "Please w8 !",
        text: "Data loading..." + timer,
        timer: !isTimerStarted ? timer * 1000 : undefined,
        showConfirmButton: false
    });
    isTimerStarted = true;
    if(timer) {
        timer--;
        setTimeout(customSwal, 1000);
    }
})();