Javascript-onclick事件自动运行

Javascript-onclick事件自动运行,javascript,dom,Javascript,Dom,有这样的问题,但它们的问题是因为它们在调用函数时包含“()”。我的没有,而且事件仍然自动运行,无需鼠标单击输入元素,我进行了搜索,仍然可以获得对此问题的任何见解 var input = document.getElementById("wordTyped"); input.onclick = setInterval(countdown, 1000); function countdown() { console.log("test"); } 在这种情况下,浏览器执行setInter

有这样的问题,但它们的问题是因为它们在调用函数时包含“()”。我的没有,而且事件仍然自动运行,无需鼠标单击输入元素,我进行了搜索,仍然可以获得对此问题的任何见解

var input = document.getElementById("wordTyped");

input.onclick =  setInterval(countdown, 1000); 

function countdown() {
  console.log("test");
}
在这种情况下,浏览器执行
setInterval
,希望得到一个函数作为返回值。当然,返回值是一个数字

因此,如果需要每隔1秒向函数添加一个触发器,在单击事件之后,应该像下面这样绑定单击处理程序:

input.onclick =  setInterval(countdown, 1000); 

阅读事件@gurvinder372答案可能与您标记为完全重复的另一篇文章相同,但情况不同,imo。无论如何,感谢您链接到answer@AfiqRosli情况可能不同,但onclick事件自动运行所面临的问题正是由于链接的问题。您可以尝试链接解决方案,如果有更多问题,请提出新问题解释问题。@gurvinder372是的,您是对的,没有问题,已修复!我只是不知道解决方案的关键字是什么“因此,如果需要添加一秒钟的延迟”,为此,方法
setInterval()
是错误的选择。此方法调用传递的方法。更好的选择是
setTimeout()
。我不能再写答案了,因为这个问题已经结束。@reporter OP打算使用
setInterval
-我只是误读了这个方法。@reporter我已经检查了
setTimeout()
。据我所见,它会在时间结束后做一些事情。我正在尝试使用
setInterval()
在html运行时每秒更改一次。如果可以操作
setTimeout()
中的time参数,则可以使用purposes@AfiqRosli'setTimeout()'只运行一次,除非在传递的方法中有回调。正如名称“setInterval()”所说,它会自动调用该方法,而不会在传递的方法中调用。在这两种方法中,都可以用变量名替换数字。
input.onclick =  function() {
    setInterval(countdown, 1000); 
};