下面的代碼:變量值不會改變原因?
var popupFirstName;
PopupFirstNameButton.addEventListener('click', function(){
popupFirstName = 'SomeValue';
});
當我alert(popupFirstName)
在一些其他的功能,它說undefined
。我如何獲得價值?
下面的代碼:變量值不會改變原因?
var popupFirstName;
PopupFirstNameButton.addEventListener('click', function(){
popupFirstName = 'SomeValue';
});
當我alert(popupFirstName)
在一些其他的功能,它說undefined
。我如何獲得價值?
popupFirstName
在它的放置位置有一個本地範圍,我們不知道您告訴我們什麼。但我想它是在一個函數中,所以範圍將在本函數中。你定義的函數繼承對該變量的訪問;這是該語言的一個便利功能。
如果您想要創建具有全局範圍的變量的單個實例,請編寫window.popupFirstName
。
在哪個瀏覽器中測試? Firefox需要第三個參數addEventListener
,IE使用完全不同的方法(attachEvent
)。
你可以嘗試將功能分配給onclick
:
PopupFirstNameButton.onclick = function(){
popupFirstName = 'SomeValue';
};
如果您想了解更多關於高級事件處理和跨瀏覽器的問題,或有關JavaScript和一般事件,我建議閱讀好articles on quirksmode.org。
毫無疑問,必須在設置變量之前點擊按鈕,並且您調用alert(popupFirstName)
的功能必須有權訪問該變量。
確保此變量在與調用它的函數相同的塊範圍內聲明。
您錯過了addEventListener函數的第三個參數。對於Firefox例如,你將需要:
PopupFirstNameButton.addEventListener('click', function(){
popupFirstName = 'SomeValue';
}, false);
https://developer.mozilla.org/en/DOM/element.addEventListener
我想這是因爲'popupFirstName'是一個局部變量,而不是全局你使用它的,但沒有更多的代碼很難說。我們能否看到其他相關的JavaScript代碼? – pickypg 2011-05-02 18:39:20