不确定我是否滥用了新的Image(),使用下面的代码遇到了json对象的奇怪顺序的对象。
$.ajax({
type: 'GET',
url: '/' + getUsername() + '/photos',
success: function(data) {
if (data.length > 0) {
$.each(data, function() {
var caption = this.caption
var albumPhoto = '';
albumPhoto = 'http://example.com/' + this.photo;
var temp_img = new Image(),
albumPhotoWidth, albumPhotoHeight
temp_img.src = albumPhoto;
temp_img.onload = function() {
var photosObj = {
src: albumPhoto,
title: caption,
w: this.naturalWidth,
h: this.naturalHeight
};
pswpAlbum_Items.push(photosObj);
}
});
}
}
});
}
pswpAlbum_Items结果不一致,我的照片顺序不一致,当我尝试在私有模式下尝试浏览器永不缓存图像时,发现了该错误。有什么线索吗?
最佳答案
您的图片可能在不同的时间加载。您应该考虑将它们添加到onload
事件之外的数组中,或者将一个对象用作映射,并使用index
回调中的each
参数。
关于javascript - 在JavaScript中使用$ .each和new Image()时顺序不一致,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40466325/