我有一个函数可以将图像加载并放置到一个空的div中(这是我自己完成的某种滚动菜单),并使用append函数将图像一个接一个地放置。在上传到服务器之前一切都很顺利。图片的顺序似乎失败了,就像append()没有将它们一个接一个地放置一样。
loadContent = function(i){
var tytul = "#phot" + i;
var photurl = "../photos/" + activegal + "/" + i + ".JPG";
$.ajax({
url:photurl,
type:'HEAD',
error: function()
{
},
success: function()
{
newid = "photo"+i;
var img = $("<img />").attr({
src: photurl,
width:"120",
height:"90",
id: newid,
'class': "photon"
});
$(img).appendTo("#scrollbar");
counter++;
//$.delay(2);
});
};
<div id="scrollbar">
</div>
您似乎正试图通过循环计数器获取ajax调用中的图像,然后将这些图像元素添加到<div>
元素中,但是ajax调用是异步的,图像#1的appendTo()可能在图像#2的appendTo之后调用,这取决于每个ajax调用何时返回(这反过来可能取决于图像的大小、网络流量等)
确保元素按服务器检查顺序排列的唯一方法是通过设置使ajax调用同步
async:false