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 (将#修改为@)