0

ページの読み込み時に複数のファンシーボックス ダイアログを表示しようとしています。1 つを機能させることはできますが、ユーザーが最初のファンシーボックスを閉じるまで、JavaScript ループを停止して他のダイアログを開かないようにするにはどうすればよいですか? 現在、2 番目のダイアログ ボックスしか表示されません。最初にどれだけのファンシーボックス メッセージを読み込まなければならないかわかりません。ありがとう!

これがJavaScriptコードです。(更新しました)

$(document).ready(
    if("0x000000000112009b"!=""){  
        tbRowId="0x000000000112009b".split(",");  
        width="300".split(",");  
        height="300".split(",");  
        $.fancybox({  
            "autoDimensions":"false",  
            "width":width[0],  
            "height":height[0],  
            "transitionIn":"none",  
            "transitionOut":"none",  
            "modal":false,  
            "hideOnOverlayClick":false,  
            "hideOnContentClick":false,  
            "enableEscapeButton":false,  
            "overlayShow":true,  
            "showCloseButton":true,  
            "href":"announce_popup.html?sid=AppjfrfijfdfHvXC&tbRowId="+tbRowId[0],  
            "onClosed":function(){  
                alert("start");  
                $.fancybox({  
                    "autoDimensions":"false",  
                    "width":width[1],  
                    "height":height[1],  
                    "transitionIn":"none",  
                    "transitionOut":"none",  
                    "modal":false,  
                    "hideOnOverlayClick":false,  
                    "hideOnContentClick":false,  
                    "enableEscapeButton":false,  
                    "overlayShow":true,  
                    "showCloseButton":true,  
                    "href":"announce_popup.html?sid=AppjfrfijfdfHvXC&tbRowId="+tbRowId[1]  
                });  
                alert("end.");  
            }  
        });  
    }  
});
4

2 に答える 2

1

一度に開くことができるfancyBoxのインスタンスは1つだけです。$.fancybox({..});複数回呼び出すと、最後の1つだけが開かれます。「afterClose」コールバックを使用して、次のコールバックを開くことができます。例:

$.fancybox.open([{
    href : 'http://fancyapps.com/fancybox/demo/1_b.jpg',
    title : '1st title'
}
], {
    afterClose : function() {
        //There you can decide if you need to open next one
        $.fancybox.open(
        {
            href : 'http://fancyapps.com/fancybox/demo/2_b.jpg',
            title : '2nd title'
        });
    }
});​

実際の動作を参照してください-http://jsfiddle.net/GE7hn/

于 2012-11-01T13:36:53.137 に答える
0

あなたが何をしようとしているのか完全にはわかりませんが、ユーザーに各メッセージを循環させたい場合は、ここに示すようなrelタグを指定してグループを作成できます。

<a class="grouped_elements" rel="group1" href="image_big_1.jpg">
<img src="image_small_1.jpg" alt=""/></a>
<a class="grouped_elements" rel="group1" href="image_big_2.jpg"><src="image_small_2.jpg" alt=""/></a>   
<a class="grouped_elements" rel="group2" href="image_big_3.jpg"><img src="image_small_3.jpg" alt=""/></a> 
<a class="grouped_elements" rel="group2" href="image_big_4.jpg"><img src="image_small_4.jpg" alt=""/></a> 

/* This will create two galleries */

$("a.grouped_elements").fancybox();

私が提供したコードは、fancyboxのドキュメントから直接引用したものなので、チェックすることをお勧めします。メッセージとリンクを作成するJavaScriptがある場合は、グループを簡単に作成できます。

ページの読み込み時にダイアログを表示する必要がある場合は、次の方法で簡単に実行できます。

$('.your_group_class').fancybox().trigger('click');

私が助けてくれたことを願っています。

于 2012-11-01T13:12:09.623 に答える