任务很简单,但我的经验还不足以解决它。我需要在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
}
谢谢你,至少你试图提供帮助,也感谢你们。
答案 0 :(得分:0)
不需要魔法。最好全球化。
title = "Head";
function myfunc(){
console.log(title);//Head
document.getElementById("test").onclick = function(){ // you can't have like this
console.log(title);//Head
}
}
答案 1 :(得分:0)
将标题从myfunc()
:
var title = "Head";
function myfunc() {
document.getElement...
}