Автоматический перезапуск/сброс таймера обратного отсчета

StackOverflow https://stackoverflow.com/questions/932540

  •  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.В принципе все просто, но сначала нужно понять основное :)

Большое спасибо!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top