2

我一直在到处寻找,即使我找到了答案,也没有以我能理解的方式交付。我在 jsfiddle 上玩弄这段代码,试图理解为什么这个点击处理程序不起作用。如果这是一个无用的帖子,我深表歉意,只是试图理解这一切。如果有人知道有关如何呈现javascript代码以及函数如何传递对象等的任何好的教程。请给我链接!我已经阅读了如何编写函数等的基础知识。但对我来说,了解解析代码时发生的事情是完全不同的事情。

这是我要开始工作的代码:

http://jsfiddle.net/UumUP/3144/

// Function to change the content of t2  
function modifyText(evt) {  
  var thing = evt.target;
  thing.firstChild.nodeValue = "four";      
}  

// add event listener to t  
var el = document.getElementsByTagName("td");  

for(i = 0; i < el.length; i++) {
  el[i].addEventListener("click", modifyText(evt), false);   
}
4

2 回答 2

3

您正在调用函数并传递该调用的结果,而不是传递函数的引用,而是这样做:

el[i].addEventListener("click", modifyText, false);

http://jsfiddle.net/UumUP/3145/

于 2012-11-20T21:44:48.693 回答
0
el[i].addEventListener("click", modifyText(evt), false); 

应该是

el[i].addEventListener("click", modifyText, false); 

检查小提琴

于 2012-11-20T21:45:37.087 回答