JQuery JSON Flickr Feed возвращает ложь не работает

0

Я пытаюсь вытащить изображения из потока пользователей Flickr в галерею миниатюр, используя JSON, а затем хотел бы создать ссылку на них, которая создает лайтбоксы фактического изображения.

В настоящий момент скрипт работает отлично, чтобы вытащить изображения и создать привязку, НО, когда я нажимаю на изображения, хотя я добавил "return false", я все равно снимаю свою страницу и URL-адрес страницы.

FYI, существует секция ul с идентификатором 'изображений'

<script>

  $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
  {
    id: "37493306@N00",
    format: "json"
  },
  function(data){
    $.each(data.items, function(i,item)
    {

      var link = item.media.m;
      link = link.replace('_m','');
      $('<li><a href="' + link + '" class="flickr" rel="prettyPhoto[gallery1]"><img src="' +     link + '" /></a></li>').appendTo('#images');

      if(i==80) return false;

    });
  });

  $('a.flickr').click(function(evt) {
    evt.preventDefault();
  });
</script>

Скажите, есть ли что-то совершенно очевидное в этом отношении, которое заставляет его не работать, как я думал.

Благодаря :)

MATT

Теги:
flickr

1 ответ

0

Я думаю, вам нужно привязать свой инструмент click с .on() а именно:

$( document ).on( "click", "a.flickr", function(evt) {
  evt.preventDefault();
  return false;
});

http://api.jquery.com/on/

Причина этого в том, что ваши изображения не существуют в DOM в то время, когда вы пытаетесь выполнить привязку, поэтому вам нужно будет использовать делегированные события. В качестве альтернативы вместо привязки к документу вы можете использовать "#images" чтобы привязать обработчик к вашему элементу UL. В основном вы хотите настроить этот обработчик на элементе, который будет содержать динамически генерируемые элементы, которые вам интересны при нажатии на клики.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню