变量值不改变为什么?

时间:2011-05-02 18:37:16

标签: javascript

以下是代码:

var popupFirstName;
PopupFirstNameButton.addEventListener('click', function(){
    popupFirstName = 'SomeValue';
});

当我alert(popupFirstName)处于其他功能时,它会显示undefined。我怎样才能获得价值?

4 个答案:

答案 0 :(得分:2)

popupFirstName有一个范围在当地的范围,我们不知道你告诉我们的内容。但我想它是在一个函数中,因此范围将是该函数的本地。您定义的函数继承了对该变量的访问权限;这是该语言的一个便利功能。

如果您想创建具有全局范围的变量的单个实例,请写window.popupFirstName

答案 1 :(得分:1)

您在哪个浏览器中测试? Firefox需要addEventListener的第三个参数,IE使用完全不同的方法(attachEvent)。

您可以尝试将该功能分配给onclick

PopupFirstNameButton.onclick = function(){
    popupFirstName = 'SomeValue';
};

如果您想了解有关高级事件处理及其跨浏览器问题或一般JavaScript和事件的更多信息,建议您阅读好articles on quirksmode.org

不言而喻,必须在设置变量之前单击按钮,并且调用alert(popupFirstName)的函数必须能够访问变量。

答案 2 :(得分:0)

确保此变量在与调用它的函数相同的块作用域中声明。

答案 3 :(得分:0)

您缺少addEventListener函数的第三个参数。例如,对于Firefox,您需要:

PopupFirstNameButton.addEventListener('click', function(){
    popupFirstName = 'SomeValue';
}, false);

https://developer.mozilla.org/en/DOM/element.addEventListener