这是我的场景:我有一个页面(index.php),我可以通过点击图片或链接打开一个fancybox图库,我有另一个链接,我可以打开一个fancybox iframe。
我想关闭fancybox iframe并打开一个带有iframe页面手动链接的fancybox图库。
<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,我尝试了这两种方法。
<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, 但是没有打开画廊。
$('.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();
}
}
可能是什么问题?我该怎么办?感谢