javascript - 如何在 Javascript 中正确重启超时?

标签 javascript

我有一个幻灯片轮播,我以 5 秒的间隔旋转一次。 我有一个功能可以清除超时以停止旋转。 我正在尝试使用下面的代码重新启动轮播。该行为有效但不正确。它不是以 5 秒的间隔恢复,而是快速闪过幻灯片。

t = setTimeout(carousel, 5000); 
var interval;
$(document).on('mousemove keyup keypress',function(){
    clearTimeout(carousel);
    setTimeout(carousel, 6000);
})

最佳答案

我认为您正在清除不正确变量的超时。根据docs它应该是超时的ID,所以:

t = setTimeout(carousel, 5000); 
$(document).on('mousemove keyup keypress',function(){
    clearTimeout(t);
    t = setTimeout(carousel, 6000);
}

关于javascript - 如何在 Javascript 中正确重启超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55752128/

相关文章:

javascript - jQuery:是否可以将 DOM 元素分配给变量供以后使用?

javascript - React - 单击按钮访问选定的选项?

javascript - 如何查看哪个标签打开了(弹出)窗口?

javascript - 如何仅在 HTML 表格的最后一行设置边框底部样式?

javascript - bxSlider - 在 slider 内移动控件

javascript - 是否可以将 Harmony (ES6) 与 JSX Transformer.is 一起使用?

javascript - 在 Javascript 中使用对象作为键时的奇怪行为

javascript - 自定义属性在 IE10 中不起作用

javascript - 为什么 Canvas 上什么也没有出现?

javascript - 在 Rails 6 中使用导入 map 和刺激