如何设置函数变量,以便我可以在上下文之外调用,例如
function testSet(elmA,elmB) {
elmA.onclick = function() {
elmB.value = "ok";
};
}
testSet(document.getElementById('a'),document.getElementById('b'));
这不起作用,因为调用onclick
事件时,可能会从window
调用它,而elmB
未定义。
如何在不充斥全球范围的情况下实现这一目标,例如window.elmB = elmB;
?
我遇到了关于事件和回调的问题。
答案 0 :(得分:1)
elmB
不是undefined
。您的代码工作正常,因为JavaScript具有闭包,即变量保留其嵌套函数的值。也许你没有在元素存在之后将其称为 - 例如,在页面底部或onload
?
答案 1 :(得分:-1)
为什么不随时将变量设为全局变量并访问ir? 像这样:
var globalElmB = something;
function testSet(elmA,elmB){
globalElmb = elmB;
elmA.onclick=function(){
globalElmb.value="ok";
}
}