Автоматический перезапуск/сброс таймера обратного отсчета
-
06-09-2019 - |
Вопрос
Я хочу, чтобы, когда таймер достиг конечной даты и времени, он автоматически начинался заново, но путем обратного отсчета от 60 секунд.Я новичок в jquery, борюсь с этой проблемой почти 3 дня и не могу ее запустить.Мой обратный отсчет отлично работает с конечными данными, вставленными из базы данных, но когда он достигает конечной даты и времени (например:0 дней 0 часов 0 минут 0 секунд) он должен начаться с обратного отсчета от 60 секунд до нуля.
Может кто-нибудь помочь с этой проблемой?Ниже приведен фрагмент моего кода, который я использую.Я использую его в сочетании с PHP, поэтому он также создаст элементы div, используемые для обратного отсчета.
ДЖЗАПРОС:
$data = '<script type="text/javascript">
$(function () {';
foreach( $datarows as $key => $value ) { // start php foreach
$data .= '
$(\'#wincountdown'.$datarows[$key]['uid'].'\').countdown({ until: new Date( '. strftime( '%Y,%m - 1,%d,%H,%M',$datarows[$key]['end_bidding']).' ) }) ;
';
} // end php foreach
$data .= '
});
</script>';
HTML
<div id="wincountdown<#nr#>"> </div> //build by db array
Таким образом, приведенные выше фрагменты кода работают нормально.Теперь он должен автоматически перезапускаться только по достижении даты окончания.Итак, мой вопрос: как я могу реализовать этот фрагмент кода, чтобы понять, что я хочу от него, или какую функцию из jquery мне следует использовать и добавлять?Может быть, у кого-то уже есть фрагмент кода, который делает что-то подобное, и вы хотите им поделиться?
Пожалуйста, может кто-нибудь мне помочь?Если я выразился недостаточно ясно, пожалуйста, попросите меня объяснить лучше.
Заранее спасибо.
Нет правильного решения
Другие советы
Использовать Обратный отсчет JQuery плагин.
У него есть события обратного вызова, которые могут быть запущены, когда таймер достигнет нуля.Когда это произойдет, просто выполните сброс и таймер.
Предполагая, что это наш HTML:
<div id="shortly"></div>
<button id="shortlyStart">Start</button>
Это примерно тот JQuery, который вам понадобится для сброса таймера обратного отсчета.
// restart the timer on expiry
$('#shortly').countdown({until: shortly,
onExpiry: restart, onTick: watchCountdown});
$('#shortlyStart').click(function() {
// restart the timer on click
restart();
});
function restart() {
shortly = new Date();
shortly.setSeconds(shortly.getSeconds() + 5.5);
$('#shortly').countdown('change', {until: shortly});
}
// show the timer results
function watchCountdown(periods) {
$('#monitor').text('Just ' + periods[5] + ' minutes and ' +
periods[6] + ' seconds to go');
}
Я снова изучил ваш приведенный выше код (на этот раз немного лучше) ... и мой перезапуск при достижении нуля работает!Дааааа.Придется внести некоторые изменения в код, но моя главная цель достигнута... Большое спасибо, это действительно помогает мне лучше понять jquery.В принципе все просто, но сначала нужно понять основное :)
Большое спасибо!