मैं अपनी वेबसाइट पर लाइटबॉक्स में कस्टम डेटा विशेषताओं को बनाने की कोशिश कर रहा हूं। मैंने इसे जावास्क्रिप्ट में एक तत्व के लिए बनाया है और यह ठीक काम करता है लेकिन मैं इसे कई तत्वों में काम करना चाहता हूं।एकाधिक तत्वों के साथ कस्टम डेटा विशेषता
यह अब कैसे काम करता है: मेरे पास id = "image-1" वाला "ए" तत्व है और मैं यह जावास्क्रिप्ट आईडी छवि-2,3,4 पहचानना चाहता हूं ... और सही डेटा दिखाता हूं कस्टम विशेषताओं। ध्यान दें कि मैं ऑनक्लिक का उपयोग नहीं कर सकता क्योंकि यह बनाता है कि लाइटबॉक्स काम बंद कर देता है।
<div class="col-xs-12 col-sm-4 col-md-3 col-lg-3">
<div class="thumbnail grid-wrapper thumbnail-single">
<a id="image-1" href="img/photo2.jpeg" data-tags="<li>t31232est</li> <li>test</li>" data-fb="http://test1.pl" data-tt="http://test2.pl" data-gplus="http://te23432st3.pl" data-lightbox="roadtrip" data-title="This is a caption. This is a caption This is a caption This is a caption"><img src="img/photo2.jpeg" class="img-responsive" alt="..."></a>
</div>
</div>
<div class="col-xs-12 col-sm-4 col-md-3 col-lg-3">
<div class="thumbnail grid-wrapper thumbnail-single">
<a id="image-2" href="img/photo3.jpg" data-tags="<li>test</li> <li>test</li>" data-fb="http://test55.pl" data-tt="http://test253342.pl" data-gplus="http://tes32423t3.pl" data-lightbox="roadtrip" data-title="This is a caption. This is a caption This is a caption This is a caption"><img src="img/photo3.jpg" class="img-responsive" alt="..."></a>
</div>
</div>
यहाँ जेएस है:
यहाँ HTML है
var global = document.getElementById('image-1');
var tagList = global.getAttribute('data-tags');
var facebook = global.getAttribute('data-fb');
var twitter = global.getAttribute('data-tt');
var gplus = global.getAttribute('data-gplus');
$('<div id="lightboxOverlay" class="lightboxOverlay"></div><div id="lightbox" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" /><div class="lb-nav"><a class="lb-prev" href="" ></a><a class="lb-next" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><ul class="tag-list">' + tagList +'</ul><br/><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer">' +
'<ul class="social-list"><li><a href="' + facebook + '"><img src="img/fb_circle_white.png" class="img-responsive"></a></li><li><a href="' + twitter + '"><img src="img/tt_circle_white.png" class="img-responsive"></a></li><li><a href="' + gplus + '"><img src="img/gplus_circle_white.png" class="img-responsive"></a></li></ul><a class="lb-close"></a></div></div></div></div>').appendTo($('body'));
मैं इसे लाइटबॉक्स प्लगइन पर काम करता है (http://lokeshdhakar.com/projects/lightbox2/)
अद्यतन
बनाने के लिए कोशिश कर रहा हूँमैंने अभी ऑनक्ली में फ़ंक्शन का उपयोग किया था सीके और जब मैं इसका परीक्षण कर रहा हूं, तो यह सही आईडी दिखाता है। लेकिन अभी भी इसे स्ट्रिंग के रूप में getElementByID में नहीं डाल सकता है।
id="image-1" onclick="GetID(this.id)"
window.GetID = function(elem_id){
alert(elem_id);
}
var global = document.getElementById(GetID());
var tagList = global.getAttribute('data-tags');
var facebook = global.getAttribute('data-fb');
var twitter = global.getAttribute('data-tt');
var gplus = global.getAttribute('data-gplus');
अद्यतन 2:
लगभग हो गया। मैंने अपने चर वैश्विक बना दिया है। कंसोल लॉग सही आईडी और अन्य डेटा अटारी दिखाता है। समस्या यह है कि जब मैं जावास्क्रिप्ट में एचटीएमएल में परिणाम डालने की कोशिश कर रहा हूं। यहां उदाहरण है।
<ul class="social-list"><li><a href="' + facebook + '"><img src="img/fb_circle_white.png" class="img-responsive"></a></li>
+ वर्तमान जे एस:
id="image-1" onclick="window.GetID(this.id)"
var global;
var tagList;
var facebook;
var twitter;
var gplus;
window.GetID = function(elem_id){
console.log(elem_id);
global = document.getElementById(elem_id);
console.log(global);
tagList = global.getAttribute('data-tags');
console.log(tagList);
facebook = global.getAttribute('data-fb');
console.log(facebook);
twitter = global.getAttribute('data-tt');
console.log(twitter);
gplus = global.getAttribute('data-gplus');
console.log(gplus);
}
+ सांत्वना प्रतिक्रिया की छवि।
मुझे आपका कोड * नहीं * दूसरे एंकर तत्व को पहचानने वाला नहीं है।इच्छित कार्यक्षमता क्या है? –
मुझे नहीं पता कि क्लिक() के बिना इसे कैसे बनाया जाए। हो सकता है कि HTML में OnClick() का उपयोग कर आईडी प्राप्त करने का मौका मिले और इसे चर में धक्का दें और हमें इसे ElementId के रूप में दबाएं? – Radwojt
अच्छी तरह से 'पुश'' Array.prototype' का एक फ़ंक्शन है, इसलिए मैं कहूंगा कि * इसे * एक चर के रूप में * पुश * करने का कोई तरीका नहीं है, लेकिन "ऑनक्लिक" फ़ंक्शन उपयोग के भीतर, जो आपने अभी वर्णित किया है, वह बिल्कुल संभव है 'यह' कीवर्ड और यह उस तत्व को संदर्भित करता है जिस पर ईवेंट कहा जाता है। –