javascript - setTimeout 之后的 setInterval

标签 javascript jquery

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);
});

关于javascript - setTimeout 之后的 setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34386082/

相关文章:

javascript - 如何在 typescript 中捕获数据库插入(运行时)错误并在 chai 中编写合适的测试用例?

javascript - Array.prototype.fill() 与 fill as I go 不同

javascript - 使用 javascript 和 css 用鼠标选择文本的粗体部分

Javascript动态IF正则表达式条件没有eval?

javascript - Jekyll Minimal Mistakes 主题 - 添加插件

javascript - 数据切换图像变化

javascript - : Airport/Train Station departure board (html/css/jquery) 的最佳实现

javascript - 为什么 el.style.backgroundImage 在此功能上下文中不起作用?

php - 创建新用户后使用 Dropzone.js 上传,发送标题

javascript - JavaScript 的 array.clear() 不是函数吗?