Подобная "Snooze" функция в Javascript для запуска события в более позднее время

Возможно, этот вопрос уже обсуждался, но я не мог найти то, что искал.

Я работаю над Adobe Edge Animate с HTML+JS. Это полный вопрос JS, поэтому я публикую его здесь. Я написал немного кода, чтобы диалоговое окно появлялось в определенное время в течение дня. Диалог имеет две кнопки: "Воспроизвести видео сейчас" и "Напомнить мне через 10 минут"

Вот код:

function updateClock() {
    var d = new Date(); // current date
    var m = d.getMinutes();
    var h = d.getHours();

    console.log(h, ":", m);

    // call this function again in 1000ms
    sym.updateClock = setTimeout(updateClock, 1000);

    if (h == 9 && m == 0) { //at 9hrs 00 min 

        //run the dialogue for the morning pause
        sym.play(1000);
    } else {
        sym.stop(1000);
    }
}

updateClock(); // initial call

Затем мне нужно привязать кнопку повтора, чтобы она добавила 10 минут к моему условному заявлению. Я знаю, что должен добавить какую-то переменную "count", но я точно не знаю, как это сделать.

(function(symbolName) {
      Symbol.bindElementAction(compId, symbolName, "${_snoze_btn}", "click", function(sym, e) {

      }

1 ответ

Уверен, что вы просто хотите это -

(function(symbolName) {
  Symbol.bindElementAction(compId, symbolName, "${_snoze_btn}", "click", function(sym, e) {
    // remind again again in 10 minutes
    popupPlayOrSnoozeDialogTimer = setTimeout(popupPlayOrSnoozeDialogTimer, 600000);
  });
}())

Если вы хотите добавить 10 минут к текущему таймауту до тех пор, пока эта функция не будет вызвана снова, посмотрите этот ответ или посмотрите на new Date().valueOf()

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