Javascript 变量值不改变为什么?

Javascript 变量值不改变为什么?,javascript,Javascript,代码如下: var popupFirstName; PopupFirstNameButton.addEventListener('click', function(){ popupFirstName = 'SomeValue'; }); 当我在其他函数中发出警报(popupFirstName)时,它会显示未定义。如何获取值?您在哪个浏览器中测试?Firefox需要第三个参数,IE使用完全不同的方法() 您可以尝试将函数分配给单击的onclick: PopupFirstNameButto

代码如下:

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

当我在其他函数中发出警报(popupFirstName)时,它会显示
未定义
。如何获取值?

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

您可以尝试将函数分配给单击的
onclick

PopupFirstNameButton.onclick = function(){
    popupFirstName = 'SomeValue';
};
如果您想了解更多关于高级事件处理及其跨浏览器问题的信息,或者关于JavaScript和一般事件的信息,我建议您阅读这本好书


不用说,在设置变量之前必须单击按钮,并且调用
alert(popupFirstName)的函数
必须具有对变量的访问权限。

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

popupFirstName
有一个作用域位于它的本地位置,我们从您告诉我们的内容中不知道这一点。但我认为它在一个函数中,所以作用域将是该函数的局部。您定义的函数继承对该变量的访问权;这是该语言的一个便利特性


如果要创建具有全局作用域的变量的单个实例,请编写
window.popupFirstName

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

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

我假设这是因为
popupFirstName
是一个局部变量,而不是全局变量,但是如果没有更多的代码,就很难说了。我们可以看到其余的相关JavaScript代码吗?