Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript AJAX Basics (retiring) AJAX and APIs Displaying the Photos

Photos won't show after inputting all syntax, and previewing. Also I don't have a photo.html file in my workspace.

$(document).ready(function(){ $('button').click(function(){ $('button').removeClass('selected'); $(this).addClass('selected'); var flickrAPI = "http//api.flickr.com/services/feed/photos_public.gne?jsoncallback=?"; var animal = $(this).text(); var flickrOptions = { tags: animal, format: 'json' }; function displayPhotos(data) { var photoHTML = '<ul>'; $.each(data.items, function(i, photo) { photoHTML += '<li class="grid-25 tablet-grid-50>"'; photoHTML += '<a href="' + photo.link + '" class="image">'; photoHTML += '<img src="' + photo.media.n + '"></a></li>'; }); photoHTML += '</ul>'; $('#photos').html(photoHTML); } $.getJSON(flickrAPI, flickrOptions, displayPhotos); }); });//End ready

eslam said
eslam said
Courses Plus Student 6,734 Points

Please Wrap your code with 3 backticks (```) on the line before and after.

What you mean? and where should I apply these backticks?

eslam said
eslam said
Courses Plus Student 6,734 Points

Edit your post and put ``` before your code and after the code

1 Answer

Joseph Thomas
PLUS
Joseph Thomas
Courses Plus Student 9,067 Points

Larry, After reviewing your code I found three typos. I will add comments to the typos in your code.

$(document).ready(function(){ 
  $('button').click(function(){ 
    $('button').removeClass('selected'); 
    $(this).addClass('selected');

//----- You forgot the colon after http in the link below & feed should be feeds
    var flickrAPI = "http//api.flickr.com/services/feed/photos_public.gne?jsoncallback=?";

    var animal = $(this).text(); 
    var flickrOptions = { 
      tags: animal, 
      format: 'json' 
    }; 
    function displayPhotos(data) { 
      var photoHTML = '<ul>'; 
      $.each(data.items, function(i, photo) { 
        photoHTML += '<li class="grid-25 tablet-grid-50">'; 
        photoHTML += '<a href="' + photo.link + '" class="image">'; 

//----- In the image tag below it should be photo.media.m, not photo.media.n
        photoHTML += '<img src="' + photo.media.n + '"></a></li>'; 

      }); 
        photoHTML += '</ul>'; 
      $('#photos').html(photoHTML); 
    } 
    $.getJSON(flickrAPI, flickrOptions, displayPhotos);  
  }); 
});//End ready

After fixing the typos the code ran perfectly fine. Please let me know if this helps. Also, photoHTML is a variable that was created to hold the images that are imported from Flickr in an unordered list format. Regards, Joe Thomas