以下是代码:
var popupFirstName;
PopupFirstNameButton.addEventListener('click', function(){
popupFirstName = 'SomeValue';
});
当我alert(popupFirstName)
处于其他功能时,它会显示undefined
。我怎样才能获得价值?
答案 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