我正在制作一个 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 + "')");
}
当我点击我的菜单项时,一切正常,但是当我点击生成的列表元素时,我收到“current_node is not defined”错误。好像点击child找不到root-variable。
出了什么问题,我该怎么做才能解决这个问题?
最佳答案
嗨,从你所拥有的,你正在用新功能杀死浏览器(覆盖旧功能)
代替:
aElement.onclick = new Function("changePage('" + index + "')");
你可以使用:
aElement.onclick = arguments.callee(index);
“arguments”是 js 中的关键字,包含一个对象,其中包含传递给函数的所有参数(即 arguments[0]),还包含“callee”(函数本身)和“caller”(从中调用的函数)叫做 )。第二个(调用者)不是跨浏览器的。
最好的问候,
关于javascript - 使用全局变量从 Javascript 中的同一函数调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7305072/