Я пытаюсь вытащить изображения из потока пользователей 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
Я думаю, вам нужно привязать свой инструмент click с .on()
а именно:
$( document ).on( "click", "a.flickr", function(evt) {
evt.preventDefault();
return false;
});
Причина этого в том, что ваши изображения не существуют в DOM в то время, когда вы пытаетесь выполнить привязку, поэтому вам нужно будет использовать делегированные события. В качестве альтернативы вместо привязки к документу вы можете использовать "#images"
чтобы привязать обработчик к вашему элементу UL
. В основном вы хотите настроить этот обработчик на элементе, который будет содержать динамически генерируемые элементы, которые вам интересны при нажатии на клики.