【问题标题】:Jquery reset setInterval time [duplicate]Jquery重置setInterval时间[重复]
【发布时间】:2015-01-18 04:44:25
【问题描述】:

我有一个幻灯片放映使用 setInterval 5 秒,每张幻灯片应该停止 5 秒。

当用户单击上一个按钮时,幻灯片将返回上一个图像。

我的问题是当用户单击上一个时,时间仍在计数。 (上一张图片只停止 3 秒而不是 5 秒)

用户点击时有什么方法可以重置时间吗?

setInterval(function(){
  //start slide...
},5000);


$('#previous').click(function(){
    //go back to previous slide and reset time
});

【问题讨论】:

标签: javascript jquery


【解决方案1】:

像这样:

var interval;
 var timer = function(){
 interval = setInterval(function(){
  //start slide...
},5000);
};


$('#previous').click(function(){
    //go back to previous slide and reset time
   clearInterval(interval);
   timer()
});

【讨论】:

    【解决方案2】:

    将您的间隔设置代码放入一个函数中。将间隔分配给全局声明的变量。

    重置时,可以清除间隔重新开始。

    您可以通过调用startInt() 或触发点击#previous 来启动DOM 加载间隔,无论哪种方式更适合您的情况。

    var myInterval = undefined,
        startInt = function(){
        myInterval = setInterval(function(){
    
        }, 5000);
    };
    
    $('#previous').click(function(){
        if(typeof myInterval != 'undefined'){ clearInterval(myInterval); }
        startInt();
    }).click();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 2020-11-16
      • 2013-02-12
      • 2015-08-08
      • 1970-01-01
      相关资源
      最近更新 更多