Я использую несколько экземпляров jQuery FancyBox на одной странице. После звонка
jquery.fancybox.close()
он не закрывает его вообще
Скрипт, создающий FancyBox, приведенный ниже:
<script>
$("#firstTimeIntro").fancybox(
{
maxWidth : "30%",
maxHeight : "50%",
fitToView : false,
width : '70%',
height : '70%',
autoSize : false,
closeClick : false,
openEffect : 'none',
closeEffect : 'none'
}
).trigger('click');
$.fancybox.update();
</script>
Вот как я закрываю fancybox:
$("#notRightnow").click(function(e)
{
//$.cookie('navafiz_notrightnow', '1', { expires: 30, path: '/' });
$.fancybox.close();
});
Чтобы протестировать в реальной среде, посетите здесь.
На странице Загрузка отобразит всплывающее окно, чтобы попросить вас войти в систему. Когда вы нажмете ссылку " Не сейчас", она должна закрыть popUp, но это не так.
Как-то я разобрался. Лучший способ справиться с несколькими fancyboxes - объявить класс, forinstance fancybox
к ссылке, которая будет загружать всплывающее окно и запускать щелчок. Код приведен ниже:
HTML
<div style="display:none;" id="firstTimeIntro">
Loading First Time Intro
<a id="closeme" href="#">Close Me</a>
</div>
<a class="fancybox" href="#firstTimeIntro" id="hiddenIntroBox" style="display: block">Hidden</a>
<div style="display:none;" id="firstTimeIntro1">
Loading First Time Intro 2nd time
<a id="closeme1" href="#">Close Me</a>
</div>
<a class="fancybox" href="#firstTimeIntro1" id="hiddenIntroBox1" style="display: block">Hidden</a>
JavaScript
$(document).ready(function()
{
$('.fancybox').fancybox({
maxWidth : "70%",
maxHeight : "70%",
fitToView : false,
width : '70%',
height : '70%',
autoSize : false,
closeClick : false,
openEffect : 'none',
closeEffect : 'none'
});
$.fancybox.update();
//$("#hiddenIntroBox").trigger('click');
$("#hiddenIntroBox1").trigger('click');
$("#closeme").click(function(e)
{
//$.cookie('navafiz_notrightnow', '1', { expires: 30, path: '/' });
$.fancybox.close();
});
$("#closeme1").click(function(e)
{
//$.cookie('navafiz_notrightnow', '1', { expires: 30, path: '/' });
$.fancybox.close();
});
}
);