对按钮和定时警报使用Javascript

对按钮和定时警报使用Javascript,javascript,Javascript,我正在尝试创建一个带有计时器的按钮来发出警报。用户单击按钮,两秒钟后弹出警报 我的代码会导致页面加载时出现警报,两秒钟后再次出现警报,而不管是否单击按钮 var timer = setTimeout('timeUp()', 2000) function timeUp() { alert("Time's Up!"); } document.getElementById("startGame").addEventListener('click', timeUp()); 应该是: funct

我正在尝试创建一个带有计时器的按钮来发出警报。用户单击按钮,两秒钟后弹出警报

我的代码会导致页面加载时出现警报,两秒钟后再次出现警报,而不管是否单击按钮

var timer = setTimeout('timeUp()', 2000)

function timeUp() {
  alert("Time's Up!");
}

document.getElementById("startGame").addEventListener('click', timeUp());
应该是:

function timeUp() {
    var timer = setTimeout('alert("Time\'s Up!")', 2000);
}

document.getElementById("startGame").addEventListener('click', timeUp);
[更新]

我为您制作了一个示例代码pen:)

只需稍微重新分解原始代码即可。看一看:

    function timeUp() {
      setTimeout(function(){
        return alert("hi");
      }, 2000);
    }

    document
        .getElementById("startGame")
        .addEventListener('click', timeUp);
下面是完整代码笔示例的链接


为什么要将字符串而不是函数传递给
setTimeout
?评估字符串时容易出现位错误:/
    function timeUp() {
      setTimeout(function(){
        return alert("hi");
      }, 2000);
    }

    document
        .getElementById("startGame")
        .addEventListener('click', timeUp);