2011-05-02 79 views
2

下面的代码:变量值不会改变原因?

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

当我alert(popupFirstName)在一些其他的功能,它说undefined。我如何获得价值?

+0

我想这是因为'popupFirstName'是一个局部变量,而不是全局你使用它的,但没有更多的代码很难说。我们能否看到其他相关的JavaScript代码? – pickypg 2011-05-02 18:39:20

回答

2

popupFirstName在它的放置位置有一个本地范围,我们不知道您告诉我们什么。但我想它是在一个函数中,所以范围将在本函数中。你定义的函数继承对该变量的访问;这是该语言的一个便利功能。

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

1

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

你可以尝试将功能分配给onclick

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

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

毫无疑问,必须在设置变量之前点击按钮,并且您调用alert(popupFirstName)的功能必须有权访问该变量。

0

确保此变量在与调用它的函数相同的块范围内声明。