jQuery каждый добавляет и исчезает один за другим

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть функция each в массиве, и я хочу создать div для каждой строки массива и последовательно их затухать. Предпочтительно, как они упорядочены в массиве. В настоящее время мне удается исчезать все сразу, но я хочу это последовательно. Это мой код:

 $.each(data, function(key, val) {
    var generatedDiv = $(document.createElement('div'));

    generatedDiv.attr('id',"div-" val.id);
    generatedDiv.css({//somecssproperties});
    $('#results').append(generatedDiv);
    generatedDiv.fadeIn("fast");
});
  

Есть идеи?

Спасибо.

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

1. Если вы создали скрипку для этого, я мог бы помочь.

Ответ №1:

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

 var t = 100;
$.each(data, function(key, val) {
    var generatedDiv = $(document.createElement('div'));
    generatedDiv.attr('id',"div-" val.id);
    generatedDiv.css({//somecssproperties});
    $('#results').append(generatedDiv);
    t  = 100;
    generatedDiv.delay(t).fadeIn('fast');
});
  

ДЕМОНСТРАЦИЯ

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

1. Я предполагаю, что это приведет к запуску fadeIn s в тот же момент, только замедляя последующие.

2. Спасибо. но не совсем делает то, что я хочу, последние просто загружаются немного медленнее, чем первый, но они все равно загружаются все сразу.

3. о, теперь я вижу новое изменение. дай мне попробовать

4. @genesis-fi, тебе больше не нужно увеличивать t — иначе позже будет чертовски медленно.

5. @cbrandolino он хочет, чтобы они отображались один за другим, а не все за один момент / все через 100 мс