【问题标题】:how to update the jQuery setTimeout current time "tell it how many seconds remaining"?如何更新 jQuery setTimeout 当前时间“告诉它还剩多少秒”?
【发布时间】:2014-09-22 19:29:45
【问题描述】:

如何更新 setTimeout 当前时间?

例如,如果我有

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

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

谢谢

【问题讨论】:

    标签: jquery timeout settimeout


    【解决方案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);
    

    【讨论】:

    • 我似乎无法弄清楚如何使用它。我已将我的代码放在jsfiddle.net/Sp4Z2 我的代码应在 1620 秒的空闲时间后显示一个对话框。因为用户可以有一个他/她积极工作的不同选项卡/浏览器实例,所以我需要不断更新触发对话框打开的计数器。我只是发送一个 ajax 请求,一旦该请求完成,我就会重置计时器。但这对我不起作用。页面加载完成后立即打开对话框
    【解决方案2】:
    // 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      • 2020-02-11
      • 2011-01-18
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      相关资源
      最近更新 更多