Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从setTimeout()调用setInterval()不会启动计时器_Javascript_Settimeout_Setinterval - Fatal编程技术网

Javascript 从setTimeout()调用setInterval()不会启动计时器

Javascript 从setTimeout()调用setInterval()不会启动计时器,javascript,settimeout,setinterval,Javascript,Settimeout,Setinterval,我有一个任务,在预定义的时间之后打开一个引导模式窗口,为此我使用setTimeout()。然后,另一个任务是在模式窗口的主体中显示倒计时-但是从setTimeout()函数调用setInterval()并没有任何作用 func = function(warntime) { func.tid = setInterval(function() { $("#dialog-countdown").html(warntime--); if(warntime == 0) {

我有一个任务,在预定义的时间之后打开一个引导模式窗口,为此我使用setTimeout()。然后,另一个任务是在模式窗口的主体中显示倒计时-但是从setTimeout()函数调用setInterval()并没有任何作用

func = function(warntime) {
   func.tid = setInterval(function() {
     $("#dialog-countdown").html(warntime--);
       if(warntime == 0) {
           doSignout();
       }
   }, 1000);
};

var tmwarn = setTimeout(function(){
         $("#timeout-modal").modal("show");
         func(60);
   }, 20000);
因此func()调用不会启动计时器,至少在Chrome、Safari或IE中不会


怎么了?有什么解决办法吗?

如果我没弄错,您希望这样:

func = function(warntime) {
   func.tid = setInterval(function() {
     warntime--;
     console.log('warntime: ', warntime);
       if(warntime == 0) {
           doSignout(func.tid);
       }
   }, 2000);
};

doSignout = function(id) {
   console.log('signing out');
   clearInterval(id) 
}

setTimeout(function(){
    func((sessionTimeout - sessionTimeoutWarning)/1000);
}, sessionTimeoutWarning);

您是否真的在任何地方调用函数?您是否确定间隔正在启动?这就是你所期待的?等。没有什么跳出我。这里没有足够的信息,剥离它的最低限度的代码与必要的值提供复制问题。谢谢!对我有用。仍然不知道为什么我自己的代码不起作用,它看起来几乎一样。关于如何在用户输入时重新启动“warntime”计数器的任何提示?您的代码不起作用,因为您没有使用interval Id调用clearInterval()。关于重置超时-不确定您试图实现什么。在fiddle warntime是一个全局变量的情况下,您不能监视用户输入中的点击事件以及输入值并重置warntime吗?