我们如何在jQuery $ .each方法中逐个附加淡入效果的元素列表

时间:2017-10-14 11:36:46

标签: javascript jquery ajax each

我有一个json响应通过jQuery Ajax($.ajax) on .done()回调我正在操纵对html输出的响应

.done(function(response) {
     $.each(response, function(i, video) {
        html = '<div class="col-lg-6">'+response.img+'</div>";
        $(html).appendTo('#myImages');
    })    
})

所以,上面的代码工作得很好,但是我想要实现的是,我希望每个div都带有图像[追加var = html到#myImages]逐个带有轻微的淡入淡出效果,所以我怎么能加上这个。我正在检查setTimeout函数,但这不能正常工作。

1 个答案:

答案 0 :(得分:1)

要使其淡入,您可以尝试以下操作:

$(html).hide().appendTo('#myImages').fadeIn(1000);

接下来,如果你想构建一个序列,有一些方法可以做到这一点,这里是最简单的async / await try:

async function render(item, delay) {
  html = '<div class="col-lg-6">' + item.img + '</div>";
  $(html).hide().appendTo('#myImages').fadeIn(delay);

  return new Promise(function(resolve){
    setTimeout(function() {
      resolve();
    }, delay);
  })
}

.done(function(response) {
  for(var i = 0; i < response.lenght; i++) {
    try {
      await render(response[i], 1000);
    }
    catch(err) {
      console.log(err);
    }
  }
})