2
我正在製作一個XML驅動的主頁。生成菜單結構,當點擊菜單元素時,頁面上的內容會改變。當點擊一個level x元素時,它的子元素將出現在主div的列表中。這是通過一個函數changePage(id)完成的,它將一個id作爲參數來查找正確的XML節點以獲取信息。使用全局變量在JavaScript中調用函數內部功能
我想這個列表中的元素是鏈接,點擊時他們應該調用changePage函數。這用於在樹中下臺。
var root = loadXML(aXML.xml);
function changePage(id){
var current_node = root; // <-- here I get error when clicking on the a-element.
... // creating list
var aElement = document.createElement('a');
aElement.onclick = new Function("changePage('" + index + "')");
}
當我點擊我的菜單項一切正常,但是當我點擊生成列表元素上,我得到的是「CURRENT_NODE沒有定義」的錯誤。看起來,點擊兒童時發現根變量不可用。
什麼是錯,我能做些什麼來解決這個問題?
您應該使用[閉包](http://jibbering.com/faq/notes/closures/)而不是'new Function',例如, 'aElement.onclick = function(event){changePage(index)};'。也就是說,我不認爲問題在於你在這裏展示的代碼。 –
我改爲關閉。看起來更好。我也發現我的問題,我寫了錯誤的ID,所以我的函數找不到current_node,因爲它在之前崩潰了。 –
http://jquery.com/可能是值得一試 – NimChimpsky