0

1 つのページで複数の 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();
    }); 

実際の環境でテストするには、こちらをご覧ください

Load ページで、サインインを求めるポップアップが表示されます。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 に答える