Advertisement
Guest User

Zdjęcia JSON/AJAX

a guest
Oct 10th, 2016
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $(function(){
  2.  
  3.     var $button = $('.portfolio__link--show');
  4.     var $grid = $('.grid');
  5.     var imagesArr = null; // na początku nic tutaj nie mamy
  6.  
  7.     function addImages(image) {
  8.         $('<a href/>').attr('style', 'background-image: url' + '(assets/img/'+image.image).appendTo($grid);
  9.         $(this).addClass('thumb-link thumb-link-new');
  10.     }
  11.  
  12.     $button.on('click', function(event) {
  13.         event.preventDefault();
  14.  
  15.         // sprawdzamy czy zdjęcia były już wcześniej pobrane
  16.         if(imagesArr !== null) {
  17.             // wyświetliliśmy 8 zdjęć pobranych AJAXem, więc tutaj chcemy wyświetlić pozostałe
  18.             $.each(imagesArr.slice(8), function(i, image) { // .slice(8) wytnie pierwszych 8 elementów i zwróci nową tablicę z pozostałymi
  19.                 addImages(image);
  20.             });
  21.  
  22.             return; // zakończy i dzięki temu nie wyśle się ponownie AJAX
  23.         }
  24.  
  25.         $.ajax({
  26.             url: 'assets/json/photos.json',
  27.             success: function(images){
  28.                 imagesArr = images; // przypisujemy pobrane zdjęcia
  29.  
  30.                 $.each(images, function(i, image){
  31.                     // chcemy wyświetlić powiedzmy 8, pod zmienną i mamy indeks liczony od zera
  32.  
  33.                     if(i < 8) {
  34.                         addImages(image);
  35.                     } else {
  36.                         return false; // zakończy działanie metody .each, bo działa jak break przy zwykłej pętli
  37.                     }
  38.  
  39.                 });
  40.             },
  41.  
  42.             error: function() {
  43.                 alert('Something went wrong...');
  44.             }
  45.         });
  46.     });
  47. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement