Как запустить таймер, а потом отключить его?

273
22 июля 2017, 07:06

Есть событие <button onclick='start()'>Старт</button> и <button onclick='stop()'>Стоп</button>

Как при нажатии на "Старт" запустить таймер setInterval(5000), а при нажатии на "Стоп" остановить его?

Написал функцию, но она не очищает таймер, а только клонирует его

var sender = (function () {
    return function (callback, ms, stop) {
        clearInterval(time);
        var time = setInterval(callback, ms);
        if (stop) {
            clearInterval(time);
        }
    }
})();
function start () {
 sender (function () {
  alert ('start');
 }, 5000);
   function stop () {
 sender (function () {
  alert ('stop');
 }, 5000, 1);

Что я делаю не так?

Answer 1

Нашел ответ сам. Для тех кому также придется с этим столкнуться есть готовое решение:

var sender = function () {
        console.log('YES');
};
var startSender;
function start () {
   startSender = setInterval (startSender, 5000);
 }
function stop () {
   cleanInterval (startSender);
 }

Пользуйтесь

READ ALSO
tree for PHP/JS

tree for PHP/JS

нужно реализовать дерево, с возможность (добавление/изменение/перемещение/удаление элемента), можно использовать jquery, плагины к нему и/или...

205
OpenServer блокирует отображение CSS

OpenServer блокирует отображение CSS

Если открываю сайт через OpenServer, то на сайте отображается только html код, а css невиденЕсли же открываю сайт без запуска сервера, то всё отлично

311
Анимация вращения svg

Анимация вращения svg

Как сделать анимацию вращения круга svg при ховере?

376
Странная форма написание стилей

Странная форма написание стилей

Я однажды видел в CSS, что писали стили примерно так:

190