Wednesday, 15 August 2012

jquery - Closing fancybox iframe from link and open a gallery -



jquery - Closing fancybox iframe from link and open a gallery -

this scenario: have page (index.php) can open fancybox image gallery clicking on image or link , have link can open fancybox iframe.

i'd close fancybox iframe , open fancybox gallery manual link iframe page.

index.php <script type='text/javascript' src='js/jquery-1.11.1.js'></script> <script type='text/javascript' src='js/functions.js'></script> <script type="text/javascript" src="js/fancybox/jquery.fancybox.pack.js?v=2.1.5"></script> <a class="fancy-gallery" rel="gl_82" href="82_1.jpg"><img src="82_1.jpg"></a> <a class="fancy-gallery" rel="gl_82" href="82_2.jpg"><img src="82_2.jpg"></a> <a class="fancy-gallery" rel="gl_82" href="82_3.jpg"><img src="82_3.jpg"></a> <a class="fancy-open-gallery" data-open-id="gl_82">open gallery</a> <a class="fancy-open-iframe" data-url='iframe.php'>open iframe</a>

to close fancybox iframe tried these 2 methods.

iframe.php <script type='text/javascript' src='js/jquery-1.11.1.js'></script> <script type='text/javascript' src='js/functions.js'></script> <script type="text/javascript" src="js/fancybox/jquery.fancybox.pack.js?v=2.1.5"></script> <a id="close-btn" data-open-id="gl_82">close iframe via jq</a> <a onclick="parent.closefancybox('gl_82');">close iframe , open gallery</a>

btn-close function, not invoked, while function closefancybox (out of dom) closes fancybox correctly, not open gallery.

function.js $('.fancy-gallery').fancybox({ type: 'image', helpers: { title: { type: 'over' } } }); $('.fancy-open-iframe').fancybox({ 'type': 'iframe', beforeload: function() { var url = $(this.element).data('url'); var uid = $(this.element).data('uid'); this.href = url + '?uid=' + uid; } }); $('.fancy-open-gallery').click(function(e) { var el, id = $(this).data('open-id'); if(id){ el = $('.fancy-gallery[rel=' + id + ']:eq(0)'); e.preventdefault(); el.click(); } }); $('#close-btn').on('click', function(e) { e.preventdefault(); parent.$.fancybox.close(); }); }); <!-- end dom --> function closefancybox(relid){ $.fancybox.close(); var el, id = relid; if(id){ el = $('.fancy-gallery[rel=' + id + ']:eq(0)'); e.preventdefault(); el.click(); } }

what problem? how do? thanks

jquery fancybox-2

No comments:

Post a Comment