在Fancybox onClosed事件上的Fancybox中加载新内容

时间:2011-10-17 21:41:25

标签: javascript fancybox

我遇到了Fancybox Windows的问题。我使用fancybox在我的页面上显示隐藏div的内容(下面的“.popup”fancybox)。在该内容中,有一个名为#exemple的新fancybox内容的链接。当我点击第一个fancybox中的链接时,它会加载第二个fancybox内容(iframe - 这很好)。但是当用户点击第二个fancybox的关闭按钮时,我想回到第一个fancybox。

我试过“onClosed”事件,但它不起作用......

有办法吗?

提前感谢您的帮助!

以下是我使用的代码:

$("#exemple").fancybox({
    'width'             : '100%',
    'height'            : '100%',
    'titleShow'         : true,
    'titlePosition'     : 'over',
    'titleFormat'       : formatTitle,
    'autoScale'         : false,
    'centerOnScroll'    : true,
    'type'              : 'iframe',
    'onClosed'          : function() {
            alert('test');
            $(".popup").trigger('click');
        } 
});

$(".popup").fancybox({
    'autoScale'         : false,
    'centerOnScroll'    : true
});

// and here is the HTML code to trigger the hidden div:
<a style="font-weight: bold;" href=#data class=popup>our data</a>

//and the HTML code of the link inside the hidden div that gets displayed in the fancybox:
<a id=exemple title="xxx" href=xxx.php?id=xxx>link</a>

3 个答案:

答案 0 :(得分:5)

我正在使用相同的东西而且onClosed没有用。经过大量研究后,我发现存在某种版本问题,并且onClosed适用于旧版本的花式框。另一种对我有用的方法是使用beforeClose而不是onClosed。

'beforeClose':function(){alert('test')},

这可能对一些读者有所帮助。

答案 1 :(得分:4)

如果你有一个jsFiddle可以帮忙,但首先尝试将onClosed函数代码包装在setTimeout中。零时间就足够了:

'onClosed' : function() {
    setTimeout(function(){
        $(".popup").trigger('click');
    }, 0);
} 

答案 2 :(得分:1)

'onClosed'=> 'js:function() { alert("test") }',

注意:我们需要输入“js:”

我自动调用fancybox(使用扩展名)

对我来说工作正常