2010-05-30 2 views
2

Я написал следующее (часть плагина jQuery), чтобы вставить набор элементов из объекта JSON в элемент <ul>.jQuery: Вставка элементов li одна за другой?

... 
query: function() { 
    ... 
$.ajax({ 
    url: fetchURL, 
    type: 'GET', 
    dataType: 'jsonp', 
    timeout: 5000, 
    error: function() { self.html("Network Error"); }, 
    success: function(json) { 
    //Process JSON 
    $.each(json.results, function(i, item) { 
        $("<li></li>") 
        .html(mHTML) 
        .attr('id', "div_li"+i) 
        .attr('class', "divliclass") 
        .prependTo("#" + "div_ul"); 

       $(slotname + "div_li" + i).hide(); 
       $(slotname + "div_li" + i).show("slow") 
      } 
    } 
    }); 
} 
    }); 
}, 
... 

Делая это, возможно, добавив <li> элементы один на один теоретически, но когда я загрузить страницу, все появляется мгновенно. Вместо этого существует эффективный способ заставить их появляться один за другим медленнее? Я объясню небольшим примером: если у меня есть 3 элемента, этот код заставляет все 3 элемента появляться мгновенно (по крайней мере, для моих глаз). Я хочу, чтобы что-то вроде 1 замирает, затем 2 исчезает, а затем 3 (возможно, что-то вроде новичков). У кого-нибудь есть предложение?

ответ

5

Вы можете получить нужный эффект кодирования следующим образом:

$(slotname + "div_li" + i).hide().delay(i*n).show("slow"); 

где n некоторые мягкая модификатора задержки (в миллисекундах); Я предполагаю, что i также есть индекс, и, следовательно, число.

+0

Удивительно! Бесконечно благодарен. Работает как шарм. :) – Legend

Смежные вопросы