Функция повтора в 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) {

      }

person JotaSolano    schedule 31.08.2014    source источник
comment
Вы не хотите просто вызвать setTimeout с 10-минутными миллисекундами? 600000?   -  person iabw    schedule 31.08.2014


Ответы (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()

person iabw    schedule 31.08.2014
comment
Привет! Ну, эта строка кода ничего не делает (насколько я понимаю). Нажав кнопку Snooze, я также смогу запустить sym.play (1000) через 10 минут), но эта строка не является условной, она устанавливает только 10-минутный тайм-аут. Могу ли я добавить условие в виде если PlayOrSnoozeDialogTimer = True, то играть 1000? - person JotaSolano; 02.09.2014