Закрытие фрейма fancybox из ссылки и открытие галереи

#jquery #fancybox-2

#jquery #fancybox-2

Вопрос:

Это мой сценарий: у меня есть страница (index.php ), где я могу открыть галерею изображений fancybox, нажав на изображение или ссылку, и у меня есть другая ссылка, по которой я могу открыть iframe fancybox.

Я хотел бы закрыть iframe fancybox и открыть галерею fancybox с помощью ссылки вручную со страницы iframe.

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>
 

Чтобы закрыть фрейм fancybox, я попробовал эти 2 метода.

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 and open gallery</a>
 

функция btn-close не вызывается, в то время как функция closeFancybox (из DOM) корректно закрывает fancybox,
но не открывает галерею.

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();
    }       
}
 

В чем может быть проблема? Как я мог сделать? Спасибо

Комментарии:

1. Сколько у вас галерей?

2. Галереи создаются автоматически и могут содержать до 10