У меня есть обратный отсчет до премьеры фильмов Marvel, и я хотел бы иметь кнопку «Забронировать билеты», на которую невозможно нажать при обратном отсчете, а затем сделать ее доступной, когда обратный отсчет достигнет 0. Как мне это сделать?
Я пытался сделать операторы if, но что-то не так.
var clock = $('.clock').FlipClock(new Date("July 5, 2019 00:00:00"),{
clockFace: 'DailyCounter',
countdown: true
});
Вы можете увидеть текущий обратный отсчет: http://www.student.city.ac.uk/~aczc972/
Обратный вызов, кажется, хорошо работает с предупреждениями, хотя предупреждение приходит на 1 секунду, а не на 0, хотя мне просто нужно найти способ изменить поведение кнопки.
Это новый код
var clock = $('.clock3').FlipClock(new Date("April 10, 2019 12:27:00"), {
clockFace: 'DailyCounter',
countdown: true,
callbacks: {
stop: function() {
alert("Hello! I am an alert box!!");
}
}
});
вы можете посмотреть на событие остановки. sudo code clock.on('stop', function(){ enableButton = true });
почему бы вам не привязать обработчик кликов к clock2 flip-clock-wrapper
, а затем просто выйти из функции, если текущая дата и время меньше 5 июля 2019 года?
$('#clock2').off().on('click', function () { your code here } )
или, может быть, просто была обычная кнопка и выполнялась та же логика в обработчике кликов?
Я не уверен, как это сделать. Я сделал несколько попыток с операторами if и else поставить diff>0 для выполнения функции, иначе не выполнять. Однако мой опыт работы с javascript очень ограничен.
Трудно понять, какой код вставить для вашей кнопки, поскольку на вашем веб-сайте его нет. Вот потенциальное решение: http://jsfiddle.net/kdyzxLbt/
var clock = $('.clock').FlipClock(new Date("July 5, 2019 00:00:00"),{
clockFace: 'DailyCounter',
countdown: true
});
setTimeout(function(){
checktime();
}, 1000);
function checktime(){
t = clock.getTime();
if (t<=0){
$('#myBtn').removeAttr('disabled');
}
setTimeout(function(){
checktime();
}, 1000);
}
По сути, он запускает ваши часы и проверяет время каждую секунду. Если время меньше или равно 0, оно включает вашу кнопку.
Источник: Флип-часы обратного отсчета и сброс после подсчета до нуля
Привет, Джозеф. Итак, я ищу способ изменить поведение кнопки. Ваш код выглядит нормально, хотя обратный отсчет появляется, когда обратный отсчет заканчивается (00:00:00). Можно ли отключить кнопку, пока часы не достигнут 00:00:00, а затем сделать ее доступной для нажатия. Кнопка есть на сайте.
Правильно, потому что дата отключена, не стесняйтесь настраивать ее, чтобы вы могли увидеть отключение в действии. Я добавил на завтра: jsfiddle.net/286fxs7p
Выглядит хорошо! В перекидных часах есть некоторая ошибка, поэтому они идут слишком быстро и перескакивают через каждую вторую цифру, поэтому я настроил их, чтобы удалить ошибку, и, похоже, она была исправлена. Однако при обновлении часы показывают отрицательные числа. Часы должны полностью исчезнуть после, даже после обновления сайта. Я пытался использовать обратные вызовы для этого, но он все еще появлялся снова. Это рабочий пример без ошибки: jsfiddle.net/qf2jhyrx
Хорошая работа по настройке и исправлению ошибки. Для удаления часов вам просто нужно добавить обработчик удаления, например: jsfiddle.net/9cLrx4je/2
К сожалению, это все, в чем я могу вам помочь (например, удаление часов не было в исходном вопросе). Пожалуйста, примите этот ответ, если он вам помог, и задайте новый вопрос, если у вас есть дополнительные вопросы.
Я очень ценю вашу помощь! Это сводило меня с ума!
Похоже, что Флип-часы имеет обратный вызов
onInterval
и методgetFaceValue()
. Возможно, вы сможете проверить, есть лиgetFaceValue() === 0
в этом обратном вызовеonInterval
.