1

スライダーを制御する 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;
}
}
4

1 に答える 1

0

私は文字通りこの人の投稿からこの問題を解決しました クリック時にsetintervalをリセットします

これを使用して 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);

settimeout 関数を追加したくない場合は、単に setInterval を書き直すだけです。

于 2013-01-05T21:07:14.350 に答える