подгрузка контента аяксом
Я использую timeout хочу добится того чтобы каждая фотка открывалась с задержкой, но с задержкой открывается весь блок из 9 фоток, как добиться того чтобы каждая фотка задерживалась
var inProcess = false; var num = 9; var cnt= new Url(); cnt=cnt.path.toString(); cnt=cnt.split('/') cnt=cnt[2]; var cat = "1"; var url = "/functions_ajax/get_photos"; $(window).scroll(function func () { if($(window).scrollTop() + $(window).height() >= $(document).height() && !inProcess ) { $.ajax({ type: "POST", dataType: 'json', url: url, data: {num:num,cnt:cnt}, cache: false, success: function(data){ if (data.length>0) { $.each(data, function (index, data){ //здесь я использую timeout чтобы была задержка setTimeout(function() { $('.news').append('<div class="kurs"><img class="item" src="'+data.thumb +'" alt="" title=""/></div>'); }, 1000); }); inProcess = false; num += 9; } }, error: function(xhr, str){ alert('Возникла ошибка: ' + xhr.responseCode); } }) } }) |
imedia,
наверняка дело в том, что метод $.each отрабатывает достаточно быстро, по этому таймер срабатывает примерно через одно и тоже время. Попробуй при каждой итерации добавлять ещё секунду. Т.е. как-то так: var i = 0; $.each(data, function (index, data) { i += 1000; setTimeout(function() { $('.news').append('<div class="kurs"><img class="item" src="'+data.thumb +'" alt="" title=""/></div>'); }, i); |
Часовой пояс GMT +3, время: 00:54. |