从循环外部停止jQuery setInterval循环

时间:2013-01-05 21:03:42

标签: jquery setinterval

我有一个控制滑块的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;
}
}

1 个答案:

答案 0 :(得分:0)

我确实从这篇帖子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。