Javascript 点击事件问题

Javascript 点击事件问题,javascript,Javascript,我只是好奇,为什么这个事件被加载,而不是点击触发自己 window.onload=initAll; function initAll(){ var divPath = document.getElementsByTagName("div")[0]; var theLink = divPath.getElementsByTagName("a")[0]; theLink.onclick = myEvent(theLink); }; function myEvent (myMan

我只是好奇,为什么这个事件被加载,而不是点击触发自己

window.onload=initAll;

function initAll(){
  var divPath = document.getElementsByTagName("div")[0];
  var theLink = divPath.getElementsByTagName("a")[0]; 
  theLink.onclick = myEvent(theLink);  
};

function myEvent (myMan){  
  myMan.innerHTML="You're my maan,bro!!!";
  return false;  
};
感谢你的帮助
BR

当您编写
theLink.onclick=myEvent(theLink)
时,您正在调用
myEvent
,并将结果分配给
onclick

您需要创建一个单独的函数,用一个参数调用
myEvent
,并将其分配给
onclick

theLink.onclick = function() { return myEvent(theLink); };

编写
theLink.onclick=myEvent(theLink)
时,调用
myEvent
并将结果分配给
onclick

您需要创建一个单独的函数,用一个参数调用
myEvent
,并将其分配给
onclick

theLink.onclick = function() { return myEvent(theLink); };

这是因为根据代码,您将函数myEvent返回的值指定为链接事件处理程序,而不是函数本身。 您应将代码更改为以下内容:

window.onload=initAll;

function initAll(){
  var divPath = document.getElementsByTagName("div")[0];
  var theLink = divPath.getElementsByTagName("a")[0]; 
  theLink.onclick = function(){ return myEventHandler(theLink)};  

};

function myEvent (myMan){  
  myMan.innerHTML="You're my maan,bro!!!";
  return false;  
};

这是因为根据代码,您将函数myEvent返回的值指定为链接事件处理程序,而不是函数本身。 您应将代码更改为以下内容:

window.onload=initAll;

function initAll(){
  var divPath = document.getElementsByTagName("div")[0];
  var theLink = divPath.getElementsByTagName("a")[0]; 
  theLink.onclick = function(){ return myEventHandler(theLink)};  

};

function myEvent (myMan){  
  myMan.innerHTML="You're my maan,bro!!!";
  return false;  
};

因为您正在将函数调用的结果
myEventHandler(theLink)
分配给
theLink.onclick
属性。您实际要做的是:

theLink.onclick = myEventHandler
它将myEventHandler函数的一个指定给
链接.onclick
属性。传递给该函数的参数将是,从中可以确定实际单击了哪个对象。或者,您可以创建一个:


通过这种方式,您可以获得事件对象和对已分配事件处理程序的对象的引用,这就是您在代码中尝试执行的操作。

因为您正在将函数调用的结果
myEventHandler(theLink)
分配给
theLink.onclick
属性。您实际要做的是:

theLink.onclick = myEventHandler
它将myEventHandler函数的一个指定给
链接.onclick
属性。传递给该函数的参数将是,从中可以确定实际单击了哪个对象。或者,您可以创建一个:

通过这种方式,您可以获得事件对象和对您分配了事件处理程序的对象的引用,这就是您在代码中尝试执行的操作。

myEvent
是一个处理程序,而不是事件。
myEvent
是一个处理程序,而不是事件。