Javascript 从setTimeout()调用setInterval()不会启动计时器
我有一个任务,在预定义的时间之后打开一个引导模式窗口,为此我使用setTimeout()。然后,另一个任务是在模式窗口的主体中显示倒计时-但是从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) {
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吗?