как остановить setinterval при нажатии - PullRequest
0 голосов
/ 24 июня 2018

Я использую слайд-шоу на своем веб-сайте, у плагина нет опции автозапуска, поэтому я использую setinterval для его достижения.

вот мой код:

var myInterval,
    startInt = function(){

        myInterval = setInterval(function(){

            $(".slidenav__item--next").click();

        }, 7000);

    };

startInt();

У меня есть наложение видео, которое открывается при нажатии на элемент, и я пытаюсь остановить функцию автозапуска, когда наложение открыто, и начать снова при закрытии наложения.

здесьто, что я пробовал, но не работает:

". slides a" - это ссылка, чтобы открыть мой оверлей, ".back" - это ссылка, чтобы закрыть его.

var myInterval,
    startInt = function(){

        myInterval = setInterval(function(){

            $(".slidenav__item--next").click();

        }, 7000);

    };

startInt();

/* RESET WHEN OVERLAY OPENED */

$(".slides a").click(function() {

    clearInterval(myInterval);

});

$(".back").click(function() {

    startInt();

});

Любая помощь высоко ценится!

спасибо

1 Ответ

0 голосов
/ 24 июня 2018

Я нашел решение, используя флаг:

var paused = false;
var autoplay = window.setInterval(function() {

    if(!paused) {

        $(".slidenav__item--next").click();

    }

}, 7000);

$('.slides a').on('click', function(e) {

    e.preventDefault();
    paused = true;

});

$(".back").click(function() {

    e.preventDefault();
    paused = false;

});
...