Javascript 创建事件侦听器时,函数会立即启动

Javascript 创建事件侦听器时,函数会立即启动,javascript,jquery,Javascript,Jquery,我正在编写一个函数,当单击一个图像时,它将向另一个图像添加一个事件侦听器。创建事件侦听器时,myFunction()会立即被调用,而不是等待单击第一步 function firstImageClick(){ //add event listener document.getElementById("firstStep").addEventListener("click", myFunction()); } 参数应该是myFunction而不是myFunction()参数

我正在编写一个函数,当单击一个图像时,它将向另一个图像添加一个事件侦听器。创建事件侦听器时,myFunction()会立即被调用,而不是等待单击第一步

  function firstImageClick(){
   //add event listener 
    document.getElementById("firstStep").addEventListener("click", myFunction());
  }

参数应该是
myFunction
而不是
myFunction()

参数应该是
myFunction
而不是
myFunction()

您不是将
myFunction
添加为回调,而是将调用返回到
myFunction

您必须传递函数,而不是调用它:

enfunction firstImageClick(){
    //add event listener 
    document.getElementById("firstStep").addEventListener("click",    myFunction);
}

您没有将
myFunction
添加为回调,而是将调用返回到
myFunction

您必须传递函数,而不是调用它:

enfunction firstImageClick(){
    //add event listener 
    document.getElementById("firstStep").addEventListener("click",    myFunction);
}

像下面那样调用该函数

function firstImageClick(){
   //add event listener 
   document.getElementById("firstStep").addEventListener("click", 
   myFunction);
}

myFunction

中删除括号,如下调用该函数

function firstImageClick(){
   //add event listener 
   document.getElementById("firstStep").addEventListener("click", 
   myFunction);
}

myFunction

中删除括号。括号使函数立即启动。通过去掉括号来更改代码段的结尾。
(“单击”,myFunction())
(“单击”,myFunction)

括号使函数立即启动。通过去掉括号来更改代码段的结尾。
(“单击”,myFunction())
(“单击”,myFunction)

addEventListener()
的第二个参数中的
myFunction()
中删除括号。包含括号将立即调用函数。正确的代码应该如下所示:
document.getElementById(“第一步”).addEventListener(“单击”,myFunction)
addEventListener()
的第二个参数中的
myFunction()
中删除括号。包含括号将立即调用函数。正确的代码应该如下所示:
document.getElementById(“第一步”).addEventListener(“单击”,myFunction)