从链接关闭fancybox iframe并打开一个库

时间:2014-06-26 11:08:19

标签: jquery fancybox-2

这是我的场景:我有一个页面(index.php),我可以通过点击图片或链接打开一个fancybox图库,我有另一个链接,我可以打开一个fancybox iframe。

我想关闭fancybox iframe并打开一个带有iframe页面手动链接的fancybox图库。

的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 iframe,我尝试了这两种方法。

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

可能是什么问题?我该怎么办?感谢

0 个答案:

没有答案