2012-12-13 17 views
5

मैं एक worpdress साइट का निर्माण कर रहा हूँ और शोर्ट का उपयोग कर बनाए गए पेज पर कई दीर्घाओं रखता हूं। फिलहाल सभी छवियों को rel विशेषता 'prettyPhoto [1]' दिया गया है, लेकिन मुझे प्रत्येक गैलरी को अलग होने की आवश्यकता है। मेरे पास पृष्ठ पर कुल 56 चित्र हैं, इसलिए जब गैलरी 1 की पहली छवि लाइटबॉक्स में खुलती है तो यह कहती है कि 1/56 और मैं सभी 56 छवियों के माध्यम से क्लिक कर सकता हूं, जो मैं चाहता हूं गैलरी के लिए 1/16 कहने के लिए गैलरी 1/16 आदि मैं अपने raw.js फ़ाइल में स्क्रिप्ट की इस पंक्ति को संपादित करने के लिए कहा गया था:सुंदर पेज एक ही पृष्ठ पर एकाधिक दीर्घाओं

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

लेकिन है और न ही इसके साथ यह करने के लिए क्या सुनिश्चित करें? किसी भी तरह की सहायता का स्वागत किया जाएगा।

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

उत्तर

8

prettyPhoto समूहों दीर्घाओं एक साथ वर्ग कोष्ठक की सामग्री पर आधारित: यहाँ प्रश्न में पृष्ठ पर एक लिंक है। तो आपको एक ही गैलरी में सभी 56 छवियां मिल रही हैं क्योंकि उन्हें सभी गैलरी को सौंपा गया है।

आप वास्तव में क्या चाहते हैं गैलरी 1 में पहला सोलह है;

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

और गैलरी 2 में अगला 16;

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

सवाल है कि यह देखते हुए कि rel विशेषता जे एस के माध्यम से सौंपा जा रहा है कैसे करना है? खैर मैं इसे मूल अभिभावक div आईडी के आधार पर कर रहा हूं। प्रत्येक गैलरी-आइकन तत्व में गैलरी-आइटम अभिभावक होता है। उनमें से प्रत्येक गैलरी कक्षा का हिस्सा है जिसमें एक विशिष्ट आईडी है। उदाहरण के लिए

<div id='gallery-3' class='gallery galleryid-555 gallery-columns-4 gallery-size-thumbnail'> 
    <dl class='gallery-item'> 
     <dt class='gallery-icon'> 

तो आप उस अद्वितीय गैलरी आईडी को सुंदर फोटो रिलेशन मान के रूप में असाइन करना चाहते हैं। अर्थात;

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

मैं सभी गैलरी-चिह्न खोजने और माता पिता गैलरी आईडी खोजने के लिए closest() उपयोग करते हुए, इस तरह से यह करना होगा,

Finding the id of a parent div using Jquery

मैं इसे या कुछ भी लेकिन कुछ इस तरह का परीक्षण नहीं किया गया है तो आप सही दिशा में जा मिलना चाहिए;

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

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

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

      });  
+1

मैकनाब आपका जीवनभर वाला। यह पहली बार काम किया। उत्तर और सहायता के लिए आपको बहुत बहुत धन्यवाद। –

0

मैं शायद आया आसान समाधान के साथ, मैं सिर्फ each समारोह में अपने सभी गैलरी div के माध्यम से जा रहा हूँ और फिर उन्हें अंदर छवियों में prettyPhoto आरंभ।

$(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

क्यों डाउनवोट?यह आसान है, यह काम कर रहा है और आपके एचटीएमएल मार्कअप को गैलरी से गैलरी में बदलना नहीं है (जो बहुत अच्छा है क्योंकि उपयोगकर्ता मेरे वेब पर गैलरी जोड़ या निकाल सकते हैं) –

-1

सब किया जाना चाहिए एचटीएमएल, जहां आप अपनी गैलरी जोड़ने है कि इस rel = "prettyPhoto [pp_gal]"

अपनी पहली गैलरी में

आप में बनाते तरह दिखता में rel बदलने के लिए है आपका div rel = "prettyPhoto [pp_gal]" को "prettyPhoto [gallery1]" में बदलता है (उदाहरण के लिए)

और "prettyPhoto [gallery2]" के बगल में और इसी तरह।

संबंधित मुद्दे