我在写一个菜单系统,当用户点击一个特定的行时,我需要调用一个函数。我正在使用新函数来传递称为函数的div以及用户点击的行。一切顺利,直到我尝试将本地数组传递给该函数。如果我这样做:需要将本地数组传递到点击功能
for (i=0;i<tmpdropnumber;i++){
var dv=document.getElementById(id+i);
dv.style.cursor="pointer";
dv.onmouseover = new Function('dropover'+"('" + id + "','" + i + "')");
dv.onmouseout = new Function('dropout'+"('" + id + "','" + i + "')");
dv.onclick = new Function('dropclick'+"('" + id + "','" + i + "','"+tmparray1+"','"+tmparray2+"')");
}
正如你所期望的数组作为字符串传递。我可以重建函数中的数组,但看起来不够优雅。
,如果我尝试以下方法:
for (i=0;i<tmpdropnumber;i++){
var dv=document.getElementById(id+i);
dv.style.cursor="pointer";
dv.onmouseover = new Function('dropover'+"('" + id + "','" + i + "')");
dv.onmouseout = new Function('dropout'+"('" + id + "','" + i + "')");
dv.onclick = new Function('dropclick'+"('" + id + "','" + i + "',"+tmparray1+","+tmparray2+")");
}
试图通过它崩溃的阵列。关于如何实现这一点的任何想法?我在我的代码中使用jquery,所以枯萎的JavaScript或jQuery解决方案将罚款。取而代之的
dv.onclick = new Function('dropclick'+"('" + id + "','" + i + "','"+tmparray1+"','"+tmparray2+"')");
因为它在构建字符串时使用toString()。 – epascarello 2013-02-15 16:02:11
在一个简单的词:[json](http://www.json.org/) – 2013-02-15 16:02:22
我正在做一个客户下拉式菜单。我使用循环添加了一堆div,并在创建时附加onclick函数。因此,当用户点击我的功能知道哪一行被点击。总是使用字符串只是不能传递数组(或对象),因为新函数似乎只能传递字符串。 – Kage 2013-02-15 16:07:05