2012-12-13 24 views
5

Ben bir worpdress site yapıyorum ve kısa kodu kullanarak bir sayfada birden fazla galeri var. Şu anda tüm görüntülere "prettyPhoto [1]" rel özniteliği verildi ancak her bir galerinin ayrı olması gerekiyor. Sayfanın toplamda 56 fotoğrafı var, galeri 1'in ilk resmi lightbox'ta açıldığında 1/56 yazıyor ve tüm 56 fotoğrafı tıklayabiliyorum, istediğim galeri 1/16 derken galeri 1/16 vb benim raw.js dosyasında script bu çizgiyi düzenlemek için söylendi:prettyPhoto bir sayfada birden çok galeri

$(".gallery-icon a").attr('rel', 'prettyPhoto[1]'); 

ama ne onunla yapmak ne olduğundan emin? Herhangi bir yardım büyük takdir edilecektir.

http://www.tetra-shed.co.uk/news/

cevap

8

prettyPhoto grupları galerileri araya köşeli parantez içeriğine göre: Burada söz konusu sayfaya bir bağlantıdır. Yani hepsi aynı galeride 56 resim alıyorsunuz çünkü hepsi galeriye atandılar.

Gerçekten istediğiniz şey galeride ilk on altıdır 1;

$(".gallery-icon a").attr('rel', 'prettyPhoto[1]'); 

Ve sonraki 16 galeride 2;

$(".gallery-icon a").attr('rel', 'prettyPhoto[2]'); 

soru rel nitelik JS aracılığıyla tahsis edildiğini verilen bunu nasıl de öyledir? Peki ebeveyn veli div kimliğine göre bunu yapmaya bakacağım. Her galeri simgesi elemanının bir galeri öğesi ebeveyni vardır. Bunların her biri, belirli bir kimliği olan bir galeri sınıfının parçasıdır. Örneğin, bu benzersiz galeri kimliğini güzel fotoğraf değeri olarak atamak istersiniz. örneğin;

$(".gallery-icon a").attr('rel', 'prettyPhoto[gallery-3]'); 

Bütün galeri simgeleri bulma ve bunun gibi, ebeveyn galerisi kimliği bulmak için closest() kullanarak yapacağını;

Finding the id of a parent div using Jquery

Ben size doğru yönde gidiyor almalısınız o ya böyle bir şey ama hiçbir şey test ettik;

  $('#content').find('.gallery-icon a').each(function() { 

       var gallid = $(this).closest("div").attr("id"); 

       $(this).attr('rel', 'prettyPhoto['+ gallid +']'); 

      });  
+1

Bir hayat kurtarıcınız. İlk defa çalıştı. Cevap ve yardım için çok teşekkür ederim. –

0

belki daha kolay çözüm ile, sadece each işlevinde tüm galeride div içinden gidiyorum ve sonra içlerinde görüntülerdeki prettyPhoto başlatılıyor geldi.

$(document).ready(function(){ 
    $.each($(".gallery"), function(i, val) { 
     var queryString = ".gallery:nth(" + i + ") a[rel^='prettyPhoto']"; 
     $(queryString).prettyPhoto({animation_speed:'normal',theme:'light_square', social_tools: false}); 
    }); 
}); 
+0

Neden downvote?Bu basit, işe yarıyor ve HTML işaretlemeniz galeriden galeriye değişmek zorunda kalmıyor (kullanıcılar web sitemde galeri ekleyebilir veya kaldırabilirler.) –

-1

yapılması gereken tek şey = "prettyPhoto [pp_gal]" İlk galerisinde

içinizde oluşturmak bu rel gibi görünür size galeri eklemek html rel değiştirmektir diviniz rel = "prettyPhoto [pp_gal]" ifadesini "prettyPhoto [gallery1]" olarak değiştirir (örneğin)

ve "prettyPhoto [gallery2]" ifadesinin yanı sıra vb.