2016-04-27 3 views
3

У меня проблема с отображением обратного отсчета в сообщении sweetalert. После щелчка я использую сообщение «A с автоматическим таймером закрытия». Я хочу, чтобы этот обратный отсчет был в сообщении, и пользователь может видеть обратный отсчет.Сладкое предупреждение. Отображение обратного отсчета в поле оповещения

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

Я не думаю, что это возможно без изменения библиотеки. Возможно [этот ответ на аналогичный вопрос] (http://stackoverflow.com/questions/35718899/countdown-in-setinterval-function-with-sweet-alert-plugin) может работать на вас. – michaPau

+1

См. Мой ответ. Вы найдете полное решение (: –

ответ

12

Нельзя делать с SweetAlert. Он не поддерживает подсчет пользовательского интерфейса. Но никогда не говори никогда :-)

Я подготовил небольшой взлом, который поможет вам в этом. Просто добавьте код в свое приложение, и вы увидите механизм подсчета в реальном времени. И не забудьте добавить 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

WOW hack идет очень хорошо. Большое вам спасибо! Это делает именно то, что я хотел ... :) –

+1

Это потрясающе. Простое решение, но действительно умное. Не придумал бы это сам, но легко настроить и понять. +1! –

3

Вот лучшее решение

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

Quick and Cool ... thx – NoBody

Смежные вопросы