var playtop = setInterval(goright, 5000);

function goright(){
...
}


以上作品。

现在,我需要通过单击按钮,在页面上执行某些操作以及单击后十秒钟来中断以上操作-再次激活setInterval

$("#btngoright").click(function(){
    clearInterval(playtop);
    ...
    setTimeout(playtop, 10000);
});


但是,一旦中断,setInterval就不会再次激活。

最佳答案

它不起作用,因为playtop是最初设置间隔时返回的ID。

setTimeout方法需要一个函数,而不是id,因此您应该再次传递对goright函数的引用:

setTimeout(goright, 10000);


如果要在10秒后再次激活该间隔,可以设置一个间隔并在匿名函数中将引用传递给goright函数:

$("#btngoright").click(function(){
    clearInterval(playtop);

    setTimeout(function () {
      setInterval(goright, 5000);
    }, 10000);
});

09-17 05:07