如何更新jQuery setTimeout当前时间"告诉它剩余多少秒"?

时间:2014-07-31 00:09:51

标签: jquery timeout settimeout

如何更新setTimeout当前时间?

例如,如果我有

setTimeout(function(){
    $( idleTimeout ).dialog("open");
},  20000);

然后在5秒后我想告诉计时器剩下的时间只有10秒而不是15.在这种情况下基本上跳过了5秒。

由于

2 个答案:

答案 0 :(得分:1)

您可以通过清除原始超时然后创建新超时来更新setTimeout功能。

// desired code to execute after timeout
var code = function() {
    $( idleTimeout ).dialog("open"); 
};

// originally set to occur after 20 secods
var timeoutID = window.setTimeout(code, 20000);

// after 5 seconds update to run in another 10 seconds
window.setTimeout(function() {
  window.clearTimeout(timeoutID);
  window.setTimeout(code, 10000); 
}, 5000);

答案 1 :(得分:0)

// with a bit of tweak it work. change setTimeout to setInterval  
var timeoutID = window.setInterval(code, 10000);
   window.setTimeout(function() {
     window.clearInterval(timeoutID);
       window.setInterval(code, 500); 
}, 20000);