Как я могу сделать кнопку доступной, если обратный отсчет достиг 0?

У меня есть обратный отсчет до премьеры фильмов 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!!");
    }
  }
});

Похоже, что Флип-часы имеет обратный вызов onInterval и метод getFaceValue(). Возможно, вы сможете проверить, есть ли getFaceValue() === 0 в этом обратном вызове onInterval.

brbcoding 09.04.2019 22:53

вы можете посмотреть на событие остановки. sudo code clock.on('stop', function(){ enableButton = true });

gmdev86 09.04.2019 23:00
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
123
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

почему бы вам не привязать обработчик кликов к clock2 flip-clock-wrapper, а затем просто выйти из функции, если текущая дата и время меньше 5 июля 2019 года?

$('#clock2').off().on('click', function () { your code here } )

или, может быть, просто была обычная кнопка и выполнялась та же логика в обработчике кликов?

Я не уверен, как это сделать. Я сделал несколько попыток с операторами if и else поставить diff>0 для выполнения функции, иначе не выполнять. Однако мой опыт работы с javascript очень ограничен.

DanielleJ 11.04.2019 21:16
Ответ принят как подходящий

Трудно понять, какой код вставить для вашей кнопки, поскольку на вашем веб-сайте его нет. Вот потенциальное решение: 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, а затем сделать ее доступной для нажатия. Кнопка есть на сайте.

DanielleJ 10.04.2019 12:15

Правильно, потому что дата отключена, не стесняйтесь настраивать ее, чтобы вы могли увидеть отключение в действии. Я добавил на завтра: jsfiddle.net/286fxs7p

Joseph Cho 11.04.2019 20:31

Выглядит хорошо! В перекидных часах есть некоторая ошибка, поэтому они идут слишком быстро и перескакивают через каждую вторую цифру, поэтому я настроил их, чтобы удалить ошибку, и, похоже, она была исправлена. Однако при обновлении часы показывают отрицательные числа. Часы должны полностью исчезнуть после, даже после обновления сайта. Я пытался использовать обратные вызовы для этого, но он все еще появлялся снова. Это рабочий пример без ошибки: jsfiddle.net/qf2jhyrx

DanielleJ 11.04.2019 20:43

Хорошая работа по настройке и исправлению ошибки. Для удаления часов вам просто нужно добавить обработчик удаления, например: jsfiddle.net/9cLrx4je/2

Joseph Cho 11.04.2019 20:50

К сожалению, это все, в чем я могу вам помочь (например, удаление часов не было в исходном вопросе). Пожалуйста, примите этот ответ, если он вам помог, и задайте новый вопрос, если у вас есть дополнительные вопросы.

Joseph Cho 11.04.2019 20:51

Я очень ценю вашу помощь! Это сводило меня с ума!

DanielleJ 11.04.2019 21:15

Другие вопросы по теме