单击时如何停止setinterval

时间:2018-06-24 15:51:29

标签: javascript jquery function setinterval clearinterval

我在我的网站上使用幻灯片播放,该插件没有自动播放选项,因此我使用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 :(得分:0)

我通过使用标志找到了解决方案:

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;

});