jQuery JSON flickr feed返回false不起作用

时间:2013-12-15 17:16:23

标签: javascript jquery html json flickr

我正在尝试使用JSON将用户Flickr Feed中的图像拉到缩略图库中,然后想要在其上创建一个链接来创建实际图片的灯箱。

目前脚本正常工作以拉动图像并创建锚点,但是当我点击图像时,虽然我添加了“return false”,但我仍然从页面和页面URL中删除。 / p>

仅供参考,有一个id为'images'的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

1 个答案:

答案 0 :(得分:0)

我认为您需要使用.on()函数绑定您的clickhandler,如下所示:

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

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

这样做的原因是,在您尝试进行绑定时,您的图像不存在于DOM中,因此您需要使用委派事件。或者,您可以使用"#images"将处理程序附加到UL元素,而不是绑定到文档。基本上你想在一个元素上设置这个处理程序,该元素将包含你有兴趣响应点击的动态生成的元素。