我正在开发一个包含一堆元素的窗口,每个元素都可以同时单独编辑。我使用 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');
警报只是用来查看哪里出了问题,结果证明 for 结构在第一次迭代 (i=0) 后停止。我得到 as.length 为 2 (当我有 2 个“编辑”元素时)但我只得到 i=0 然后“完成”。
我尝试了异步和非异步 ajax 调用,使用异步调用我得到了上述结果,而使用同步调用我只是得到警报,并且没有保存任何元素。
我可以安排一次只编辑一个元素,但这必须等到周末之后才能获得更改单个保存功能的许可。
虽然这个特殊问题尚未解决,但我通过以下方式解决它
a) 更改 from<a href="javascript:function"><img>
以<img onclick="function">
避免使用 eval;
b) 更改窗口的设计,以便在任何时候都只能编辑一个元素。
我仍然不知道为什么“for”循环只经历了一次交互,但我现在没有时间调查,我能做的最好的就是希望它以后不会咬我的屁股;