我正在制作一个由XML驱动的主页。生成菜单结构,并且当单击菜单元素时,页面上的内容被更改。单击x级元素时,其子项将显示在主div中的列表中。这是通过一个函数changePage(id)完成的,它以id作为参数来查找正确的XML节点以获取信息。
我希望这个列表元素是链接,当点击它们时,它们应该调用changePage-function。这用于在树中下台。
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 + "')");
}
当我点击我的菜单项时,一切正常,但是当我点击生成的list-element时,我得到一个“current_node未定义”的错误。似乎在点击孩子时找不到根变量。
有什么问题,我该怎么做才能解决这个问题?
答案 0 :(得分:0)
您好,你所拥有的是用新功能杀死浏览器(覆盖旧功能)
而不是:
aElement.onclick = new Function("changePage('" + index + "')");
你可以使用:
aElement.onclick = arguments.callee(index);
“arguments”是js中的关键字,包含一个对象,其中所有参数都传递给函数(即arguments [0]),还包含“callee”(函数本身)和“caller”(函数从中)叫做 )。第二个(调用者)不是跨浏览器。
致以最诚挚的问候,