-2

如何设置函数变量以便我可以在上下文之外调用,例如这个例子

function testSet(elmA,elmB) {
    elmA.onclick = function() {
        elmB.value = "ok";
    };
}

testSet(document.getElementById('a'),document.getElementById('b'));

这不起作用,因为当onclick事件被调用时,它可能被调用window并且elmB未定义。

我怎样才能在不淹没全局范围的情况下让它工作window.elmB = elmB;

我在事件和回调方面遇到了这个问题。

4

2 回答 2

1

elmB不是undefined。您的代码可以正常工作,因为 JavaScript 具有闭包,即变量为嵌套函数保留其值。也许你没有在元素存在之后调用它- 例如,在页面底部,或者在onload?

于 2012-07-29T22:29:48.037 回答
-1

你为什么不把变量设置为全局变量并随时访问 ir 呢?像这样:

var globalElmB = something;

function testSet(elmA,elmB){
    globalElmb = elmB;
    elmA.onclick=function(){

        globalElmb.value="ok";
    }
}
于 2012-07-29T22:32:42.860 回答