Вам не нужно использовать .live()
с fancybox v2.x, так как он уже обрабатывает настоящие и будущие (динамически добавленные) элементы.Кроме того, fancybox использует либо data-fancybox-group
, либо rel
для группировки изображений в галерее существующих элементов, но, поскольку вы создаете ручную галерею из array
, вам на самом деле не нужна ни одна из них, поэтому выhtml может быть таким простым (даже если вам не понадобится тег <a>
, но давайте оставим его таким):
<ul class="gallery">
<li>
<a><img alt="" src="1.jpg" /></a>
</li>
<li>
<a><img alt="" src="2.jpg" /></a>
</li>
<li>
<a><img alt="" src="3.jpg" /></a>
</li>
<li>
<a><img alt="" src="4.jpg" /></a>
</li>
</ul>
Затем, чтобы получить правильное значение index
для каждого эскиза, который выможет настроить ваши js как:
var hrefList = new Array;
for (var i in data) {
hrefList[i] = data[i].PATH
}
$("ul.gallery a").each(function(e){
$(this).click(function(){
$.fancybox( hrefList, {
index: e,
type: 'image'
}); //fancybox
});//click
});//each
, который всегда даст вам галерею, которая начинается с правильного index
.
Обратите внимание, что вам не нужно preventDefault()
, так как тамhref
не установлен для каждого якоря