Как мне fadeIn() строки таблицы с интервалом 500 мс

#ajax #settimeout #fadein

#ajax #время установки #fadein

Вопрос:

Приведенный ниже код извлекает фрагмент html, содержащий заданное количество строк. Некоторые из этих строк относятся к классу newentry. ( class="newentry" ) Я ожидал, что мой код отобразит их с задержкой 1000 м, но все они отображаются одновременно. Почему setTimeout не происходит ожидание между каждым вызовом каждой строки fadeIn() ?

 $.ajax({
    url: "@{Live.live(event.mnemonic)}",
    success: function(data) {
        var wait =0;
        $("#results").html(data);

        wait =500;
        $(".newentry").each(function(){
            setTimeout(function() { $('#' this.id).fadeIn(); }, wait);
            wait  = 1000;
        });

        }
        setTimeout('tick()', 1700-wait);
    }
});
  

Ответ №1:

Попробуйте это

 $(".newentry").hide(); 
$.ajax({
    url: "@{Live.live(event.mnemonic)}",
    success: function(data) {
        $("#results").html(data);
        i=500;
        $('.newentry').each(function(){
            setTimeout(function(){delayedShow($(this))},i);
            i=i 500;
        });
        {
    } 
}); 
function delayedShow(obj) { obj.fadeIn(); }
  

Комментарии:

1. Спасибо, но то, что я пытаюсь сделать, это не показывать все строки сразу. Таким образом, fadeIn для всего набора классов не очень хорош.

2. @user3797731 отредактируйте код, посмотрите, подходит ли он для ваших целей