我有以下的js代碼段:AJAX執行錯誤
cat_images = $(".category-description").next().find("img");
cat_images.each(function() {
url = $(this).parent().attr("href");
id = url.split("id=");
id = id[1];
url = "cat_url.php?i="+id;
this_image = this;
$.get (url, function (data) {
$(this_image).attr("src", data);
});
});
目前,只有最後一個元素遍歷由每個迴路是由ajax.get部分更新。我認爲這是與ajax與循環相互作用差的事情,因爲在ajax函數中使用this
會使其完全失敗。
無論如何,有沒有在等待jquery完成jquery時延遲循環? (寧願不混合常規JS)
這是因爲'get'函數是非阻塞的(異步),這意味着'each'循環不會等待resp ONSE。當你從任何get調用得到響應時,你已經完成了迭代,'this_image'等於最後一個。請參閱以下Vega的答案,瞭解如何處理此問題。 – Archer