javascript - 如何将参数传递给 setTimeout 函数

标签 javascript settimeout

<分区>

我是 javascript 的新手。我编写了一个简单的计数器程序,它从 10 开始倒计时,直到达到 1。

  <script type="text/javascript">
    function countDown(secs) {
        var element = document.getElementById("status");
        element.innerHTML = "Please wait for "+secs+" seconds";
        if(secs < 1) {
            clearTimeout(timer);
            element.innerHTML = '<h2>Countdown Complete!</h2>';
            element.innerHTML += '<a href="#">Click here now</a>';
        }
        secs--;
 --->       **var timer = setTimeout('countDown('secs')',1000);**
    }
    </script>
    <div id="status"></div>
    <script type="text/javascript">countDown(10);</script>

然后我尝试将参数作为 '+secs+' 传递给 countDown 函数。

var timer = setTimeout('countDown('+secs+')',1000);

以上更改有效。

我的问题是为什么我需要将参数作为 '+secs+' 而不仅仅是 'secs' 传递? 这有什么区别?

最佳答案

使用

var timer = setTimeout(function(){
        countDown(secs)
    },1000);

var timer = setTimeout('countDown('  + secs + ')',1000);

在你的情况下,问题是你使用字符串连接和一个没有 + 符号的变量(我的第二个例子)会导致语法错误

关于javascript - 如何将参数传递给 setTimeout 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17080318/

相关文章:

javascript - 30 秒后显示 Jquery UI 对话框

javascript - 将 coffeescript 合并到您的 Node 项目中?

javascript - 数据在特定时间间隔内传递

javascript - 使用 setTimeout 将正确的项目传递给其他函数时出现问题

javascript - 在我执行 git init 并创建一个新分支后,Meteor 崩溃了

javascript - 这种情况下 React useRef 和全局变量的区别

javascript - Javascript事件触发顺序错误?

javascript - A* 在 Canvas 上寻路

javascript - 对数组中的值求和 - Javascript

javascript - 无法使用 jsPlumb 使 div 可拖动