0

我在单个页面上使用多个 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();
    }); 

为了在真实环境中进行测试,请访问此处

在加载页面上,它将显示一个弹出窗口,要求您登录。当您单击Not Right now链接时,它应该关闭 popUp 但它不是。

4

1 回答 1

0

我以某种方式解决了这个问题。处理多个花式框的最佳方法是声明一个类,例如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();
    });
}
);
于 2013-11-10T11:39:16.203 回答