#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