不确定我是否滥用了新的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/

10-09 18:08