使用全局变量在Javascript中的同一函数内调用函数

时间:2011-09-05 07:34:10

标签: javascript function

我正在制作一个由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未定义”的错误。似乎在点击孩子时找不到根变量。

有什么问题,我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

您好,你所拥有的是用新功能杀死浏览器(覆盖旧功能)

而不是:

 aElement.onclick = new Function("changePage('" + index + "')");

你可以使用:

 aElement.onclick = arguments.callee(index);

“arguments”是js中的关键字,包含一个对象,其中所有参数都传递给函数(即arguments [0]),还包含“callee”(函数本身)和“caller”(函数从中)叫做 )。第二个(调用者)不是跨浏览器。

致以最诚挚的问候,