我正在处理一个窗口,它有一堆可以分别编辑的元素,并且可以同时进行编辑。我使用ajax来重新编辑布局,然后再次将ajax改回它将显示给客户的方式。事情是,当用户单击窗口范围的保存按钮时,我希望每个“打开以进行编辑”元素都可以保存。现在如何调用一堆依次包含ajax的函数?
,一些人决定它会是有趣的使用图像周围,而不是对他们的onclick功能锚标记,所以我不得不使用eval
调用函数。
这里是我用于窗口范围的保存按钮的代码。
var as = document.getElementsByClassName('link_salvare');
alert(as.length);
for(var i = 0; i < as.length; i++) {
alert(i);
eval(as[i].href);
}
alert('finished');
警报就在那里,看看它是怎么回事错了,它原来的结构对于第一次迭代(I = 0)之后仅仅停止。我得到as.length为2(当我有2个“编辑”元素),但我只得到i = 0,然后'完成'。
我尝试了异步和非异步ajax调用和使用异步调用我使用同步调用时获得上述结果我刚刚收到警报并且没有保存元素。
我可以安排一次只编辑一个元素,但必须等到周末后才能通过更改个人保存功能。
尽管这个特定的问题仍然没有解决,我解决它由
一)改变从<a href="javascript:function"><img>
到<img onclick="function">
,以避免使用eval; b)改变窗口的设计,以便在任何时候只能编辑一个元素。
我仍然不知道为什么'for'循环只能通过一个对象,但我现在没有时间去调查,我能做的最好的是希望它不会在后来咬我;
为什么你“必须使用eval()”?你从来没有**有**使用eval() – rlemon 2012-04-20 13:48:28
那我该如何调用函数呢?请记住,它们被分配为尝试所有触发器的方式,并且无法让它们实际运行这些功能。 – Bogdan 2012-04-20 13:50:06
http://jsfiddle.net/rlemon/4vgPn/不完美,但有周围的方法。我建议你改变HTML! :P – rlemon 2012-04-20 13:55:55