我正在處理一個窗口,它有一堆可以分別編輯的元素,並且可以同時進行編輯。我使用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