2015-05-28 2 views
0

Я сделал jQuery каждый цикл для моего массива, но я хочу загрузить 6 элементов на первом инициировании, а затем, когда я нажму кнопку «Загрузить больше», он покажет 7 до 13 и так далее. Я сделал ограничение 6 сначала с .slice(), но всегда не нажал кнопку загрузки больше, может кто-то поможет?jquery .each() loop continue on load more button?

мой код:

function loadName(){ 
    $.getJSON('/namedatabase.php', function(data) { 

    $.each($(data).slice(0, 6),function(i,item){ 
      $(".nameData").append('<div>'+item.name+'</div>'); 
     }); 

    }); 

} 

нагрузки более Кнопка

<button class="btn btn-primary" onclick="loadName();">Load more</button> 
+0

Непонятно, какие результаты вы получаете или что вы спрашиваете. –

ответ

1

Это будет лучше реализовать на стороне сервера подкачки.

Но если вы хотите, чтобы поджать все данные клиента, то попробуйте

function loadName() { 
    var $el = $(".nameData"), 
     names = $el.data('names'), 
     start = $el.data('loadstart'); 

    if (names) { 
     $.getJSON('/namedatabase.php', function (data) { 
      $.each(data.slice(0, 6), function (i, item) { 
       $el.append('<div>' + item.name + '</div>'); 
      }); 
      $el.data({ 
       names: data, 
       start: 6 
      }); 
     }); 
    } else { 
     if (data.length < start) { 
      $.each(data.slice(start, start + 6), function (i, item) { 
       $el.append('<div>' + item.name + '</div>'); 
      }); 
      $el.data('loadstart', start + 6) 
     } 
    } 
} 

Вот это работает fiddle.