タスクは単純ですが、それを解決するには私の経験では十分ではありません。eventListiner で外部変数を使用する必要があります。外部変数を使用しようとすると、「未定義」になります。これはクロージャーによって解決されているようですが、それがどのように機能するのか完全には理解できません。
不正なコード:
function myfunc(){
title = "Head";
console.log(title);//Head
document.getElementById("test").onclick = function(){
console.log(title);//undefined
}
}
正しいコード:
function myfunc(){
title = "Head";
console.log(title);//Head
document.getElementById("test").onclick = function(){
//some magic...
console.log(title);//Head
}
}
あなたの助けを願っています。ありがとう。
残念ながら、あなたの答えは役に立ちません。これはすべて試しましたが、簡単だったらここには書きません。それでも、私はそれを自分で作りました:
function myfunc(){
function cls(it){
return function(){
console.log(it);
}
}
title = "head";
document.getElementById("test").addEventListener("click",cls(title), false);//head
}
ありがとう、少なくともあなたは助けようとしました、そしてマイナスにも感謝します。