【问题标题】:setTimeout function executing code without any delay . Javascript [duplicate]setTimeout 函数执行代码没有任何延迟。 Javascript [重复]
【发布时间】:2020-07-22 05:55:28
【问题描述】:

谁能解释为什么会这样。我在 JS 中创建了一个函数,并尝试在 60 秒后使用 setTimeout 函数调用它。但它会在页面加载后立即运行。为什么会发生这种情况并且 setTimeout 没有延迟功能代码?下面是代码。

<script>

function first()
{

document.getElementById('addProductText').style.color="#32A067";

}
setTimeout(first(),60000);

</script>

【问题讨论】:

    标签: javascript html function sleep


    【解决方案1】:

    使用不带括号的函数调用():

    setTimeout(first, 6000);
    

    这样你是在引用函数,而不是立即调用它。

    工作示例:

    function first() {
      document.getElementById('addProductText').style.color = "#32A067";
    }
    setTimeout(first, 6000);
    &lt;div id="addProductText"&gt;Hello World!&lt;/div&gt;

    【讨论】:

    • 感谢塔马斯。明白了:)
    【解决方案2】:

    你应该只传递name of the function而不调用它:

    function first(){
         console.log("Hello")
    }
    setTimeout(first, 60000);

    【讨论】:

    • 您实际上不必给出函数的名称,您还有另一种选择,它也可以在调用目标函数之前提供一个操作多个指令的函数。见repl.it/repls/BelovedShallowBusinesssoftware
    • 为了防止过早调用,重要的是你给出一个函数的引用,无论它是目标函数还是匿名函数。
    猜你喜欢
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 2012-10-30
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    相关资源
    最近更新 更多