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 に答える