0

我正在尝试在页面加载时显示多个花式对话框。我可以让一个工作,但我如何让javascript循环停止并且在用户关闭第一个fancybox之前不打开另一个对话框?现在,我只看到第二个对话框。我不知道一开始我可能需要加载多少条花式框消息。谢谢!

这是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 实例。如果您$.fancybox({..});多次调用,则只会打开最后一个。您可以使用“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 回答