微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JQuery 每个循环在包含 .done/.fail 时不起作用

如何解决JQuery 每个循环在包含 .done/.fail 时不起作用

var selector = ''; 
$.each(data,function(key,val) {
  var img = '/wp-content/img/history/' + val.image_id + '.jpg';
  selector = '#img'+(key+1);
  $(selector).prepend('<img id src=' + img + ' alt="pic" />'); 
});

上面的代码片段有效,图像被加载到元素#img1、#img2、#img3、#img4中。我无法确定图像是否存在,因此将 .done/.fail 添加文件 get 中。

var selector = '';
$.each(data,val) {
  var img = '/wp-content/img/history/' + val.image_id + '.jpg';
  selector = '#img' + (key + 1);
  $(selector).removeClass('d-none');
  
  $.get(img).done(function() {
    $(selector).empty();
    $(selector).prepend('<img id src=' + img + ' alt="pic" />');
  }).fail(function() {
    alert(val.image_id + ' not found');
  });
});

文件 get 上的 done/.fail 被添加后,'key' 不再递增。在循环中使用计数器的行为与“Key”相同。

有人知道原因吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。