簡體   English   中英

jquery append 刪除和追加

[英]jquery append remove and append

我試圖一次顯示 4 個對象,但不知何故它顯示了所有對象。 在下面的代碼中,我希望顯示 4 個用戶,然后淡出,然后顯示接下來的四個用戶。 相反,它顯示所有用戶,然后淡出。 哪里錯了?

$(document).ready(function() {
  $.getJSON("MyjSON.json", function(data) {
    var text = '';
    var len = data.length;
    for (var i = 0; i < len; i++) {
      userName = data[i];
      text += '<p>' + i + '===========' + userName.user.name + '----> </p>'
      if ((i % 4) === 0) {
        console.log(i);
        $('#tFeed').append(text);
        $('#tFeed').fadeOut(3000).remove();
        // I tried $('#tFeed').fadeOut(3000); and it still did not work
        text = '';
      }
    }
  });
});

動畫和淡入淡出是異步的,但循環的其余部分同步運行並且不等待它完成。

您需要使用fadeOut()的回調函數將操作推遲到完成為止。

淡出后,您需要再次顯示 DIV。 並且您應該使用.html()而不是.append()以便刪除以前的用戶。

 const data = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]; function displayNext(arr, start, count) { let len = Math.min(arr.length, start + count); let text = ''; for (var i = start; i < len; i++) { const userName = arr[i]; text += '<p>' + i + '===========' + userName + '----> </p>' } $('#tFeed').html(text).show(); if (len == arr.length) { // last group $("#tFeed").fadeOut(3000); } else { $("#tFeed").fadeOut(3000, function() { displayNext(arr, start + count, count); }); } } displayNext(data, 0, 4);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="tFeed"></div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM