गतिशील रूप से जोड़े गए तत्वों के लिए fancybox (v1.3.x) को बांधने का सबसे आसान तरीका है:
1: jQuery v1.7.x में अपग्रेड करें (अगर आपके पास अभी तक नहीं)
2: jQuery API on()
+ focusin
घटना का उपयोग कर अपनी स्क्रिप्ट सेट करें।
यह आप के ऊपर अपने कोड (या parent
आपको इसकी आवश्यकता के रूप में की parent
) के अनुसार class="ajaxFancyBox"
के साथ अपने तत्वों की parent
तत्व खोजने के लिए और इसे करने के लिए jQuery on()
देते हैं तो उदाहरण के लिए, इस एचटीएमएल होने की जरूरत है काम करने के लिए:
<div id="container">
<a class="ajaxFancyBox" href="image01.jpg">open image 01</a>
<a class="ajaxFancyBox" href="image02.jpg">open image 02</a>
</div>
.. हम on()
और focusin
घटना तत्व को id="container"
(parent
) के साथ उदाहरण के रूप में ऊपर लागू होगा, जैसे:
$("#container").on("focusin", function(){
$("a.ajaxFancyBox").fancybox({
// fancybox API options here
'padding': 0
}); // fancybox
}); // on
आप की आवश्यकता के रूप में आप किसी भी fancybox विकल्प लागू कर सकते हैं। इसके अतिरिक्त आप की तरह की सामग्री (on()
विधि के अंदर) के विभिन्न प्रकार के लिए अलग अलग स्क्रिप्ट हो सकती हैं:
$("#container").on("focusin", function(){
$("a.ajaxFancyBox").fancybox({
// fancybox API options here
'padding': 0
}); // fancybox
$("a.iframeFancyBox").fancybox({
// fancybox API options here
'padding': 0,
'width': 640,
'height': 320,
'type': 'iframe'
}); // fancybox
}); // on
महत्वपूर्ण: उदाहरण के ऊपर है कि क्रोम पर की तरह काम नहीं करेगा। वैकल्पिक हल अपने तत्वों को बाध्य सभी के लिए tabindex
विशेषता जोड़ने के लिए की तरह
<div id="container">
<a tabindex="1" class="ajaxFancyBox" href="image01.jpg">open image 01</a>
<a tabindex="1" class="ajaxFancyBox" href="image02.jpg">open image 02</a>
</div>
कि इस मुद्दे को हल करती है और काम करेंगे fancybox (के रूप में तक मुझे पता है) सहित IE7 + अधिकांश ब्राउज़र में है।
See my demo page here
अद्यतन: 07 मार्च, 2012
मुझे बताया गया था कि इस विधि केवल काम करता है जब आप पृष्ठ के लिए नई सामग्री जोड़ नहीं लेकिन जब आप पृष्ठ की सामग्री बदलें।
विधि वास्तव में ऊपर वर्णित दो परिदृश्यों में से किसी एक पर काम करती है। बस सुनिश्चित करें कि नई प्रतिस्थापन सामग्री भी कंटेनर के अंदर लोड की गई है जहां आपने .on()
विधि लागू की थी।
See demo
क्रोम के लिए tabindex
वैकल्पिक हल भी लागू होता है।
मैंने जवाब सवाल देखो इस http://stackoverflow.com/questions/3574100/appending-dynamically-generated-h tml-use-jquery-does-not-play-well-with-fancyb –