【问题标题】:Stop jQuery setInterval loop from outside of the loop从循环外停止 jQuery setInterval 循环
【发布时间】:2013-01-06 05:12:45
【问题描述】:

我有一个控制滑块的 jQuery 设置间隔循环。我希望能够在用户单击将重新启动时间循环的滑块按钮时停止它,但我所知道的是如何停止循环

clearInterval(interval);

这是在下面循环之外的 3 个点击函数下,我想在每个点击函数停止后调用 setInterval 时间来重新启动它。

我如何回忆这个 setInterval 来重新开始?

var interval = setInterval(timecode, 8000);
function timecode() {
$varadd = $varadd + 1;




if ($varadd == "1")
{
            $(".slider").css("left","-428px");
            $("#slidecont2").css('background-image', 'url(pictures/selected.png)');
            $("#slidecont1").css('background-image', 'url(pictures/unselected.png)');
            $("#slidecont3").css('background-image', 'url(pictures/unselected.png)');
}
else if ($varadd == "2")
{
            $(".slider").css("left","-856px");
            $("#slidecont3").css('background-image', 'url(pictures/selected.png)');
            $("#slidecont2").css('background-image', 'url(pictures/unselected.png)');
            $("#slidecont1").css('background-image', 'url(pictures/unselected.png)');
}
else if ($varadd == "3")
{
            $(".slider").css("left","0");
            $("#slidecont1").css('background-image', 'url(pictures/selected.png)');
            $("#slidecont2").css('background-image', 'url(pictures/unselected.png)');
            $("#slidecont3").css('background-image', 'url(pictures/unselected.png)');
$varadd = 0;
}
}

【问题讨论】:

    标签: jquery setinterval


    【解决方案1】:

    我刚刚从这个人的帖子Reset setinterval on click 中解决了这个问题

    我用它来重新启动 setInterval,它还包括一个超时功能,可以为客人点击的幻灯片添加时间。

      setTimeout(function() {
        setInterval(timecode, 8000);
      }, 2000);
    

    因此,在您的 3 次点击功能中,您将拥有类似的内容。我假设你也会改变你的 $varadd 吗?

    $(".slider").css("left","0");
    $("#slidecont1").css('background-image', 'url(pictures/selected.png)');
    $("#slidecont2").css('background-image', 'url(pictures/unselected.png)');
    $("#slidecont3").css('background-image', 'url(pictures/unselected.png)');
    clearInterval(interval);
    $varadd = INTEGER;
    setTimeout(function() {
    setInterval(timecode, 8000);
    }, 2000);
    

    如果不想添加 setimeout 函数,只需重写 setInterval 即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多