Estoy haciendo una cuenta regresiva y usando un reloj giratorio. Aquí está el marcado
<div class="timer-special-offer" data-year="@Model.SpecialOfferModel.DateStart.Value.Year" data-month="@Model.SpecialOfferModel.DateStart.Value.Month" data-day="@Model.SpecialOfferModel.DateStart.Value.Day" data-hour="@Model.SpecialOfferModel.DateStart.Value.Hour" data-minute="@Model.SpecialOfferModel.DateStart.Value.Minute" data-second="@Model.SpecialOfferModel.DateStart.Value.Second" data-year-now="@DateTime.Now.Year" data-month-now="@DateTime.Now.Month" data-day-now="@DateTime.Now.Day" data-hour-now="@DateTime.Now.Hour" data-minute-now="@DateTime.Now.Minute" data-second-now="@DateTime.Now.Second"> <div class="timer-counter"> <div class="counter-inner"></div> </div> </div>El código Js es algo como esto:
$(document).ready(function () { $('.timer-special-offer').each(function () { var timer = $('.timer-special-offer'); if (timer.length) { const clock = $('.counter-inner').FlipClock({ clockFace: 'DailyCounter', countdown: true, language: 'ru-ru' }); const targetDate = new Date( parseInt(timer.data('year')), parseInt(timer.data('month')) - 1, parseInt(timer.data('day')), parseInt(timer.data('hour')), parseInt(timer.data('minute')), parseInt(timer.data('second'))); const nowDate = new Date( parseInt(timer.data('yearNow')), parseInt(timer.data('monthNow')) - 1, parseInt(timer.data('dayNow')), parseInt(timer.data('hourNow')), parseInt(timer.data('minuteNow')), parseInt(timer.data('secondNow'))); const time = (targetDate - nowDate) / 1000; clock.setTime(time); clock.start(); } }); });Hay varios objetos con temporizador en ellos, pero el temporizador está trabajando en el último objeto de la página como si nunca hubiera iterado a través de la oferta especial del temporizador. No puedo entender por qué.
no está haciendo un bucle en cada elemento, su código está ejecutando un código específico para 2..3.... veces. tienes que cambiar :
$('.timer-special-offer').each(function (index,element) { var timer = $(element); if (timer.length) { const clock = timer .find('.counter-inner').FlipClock({ clockFace: 'DailyCounter', countdown: true, language: 'ru-ru' }); const targetDate = new Date( parseInt(timer.data('year')), parseInt(timer.data('month')) - 1, parseInt(timer.data('day')), parseInt(timer.data('hour')), parseInt(timer.data('minute')), parseInt(timer.data('second'))); const nowDate = new Date( parseInt(timer.data('yearNow')), parseInt(timer.data('monthNow')) - 1, parseInt(timer.data('dayNow')), parseInt(timer.data('hourNow')), parseInt(timer.data('minuteNow')), parseInt(timer.data('secondNow'))); const time = (targetDate - nowDate) / 1000; clock.setTime(time); clock.start(); } });