fancybox onStart onComplete状态不起作用

时间:2010-08-09 08:35:30

标签: javascript jquery fancybox

我正在尝试使用FancyBox(jquery插件)继续使用onStartonComplete方法

我似乎无法让它为我工作。你们中的任何人都知道我做错了吗?

这就是我现在正在尝试的事情:

$(document).ready(function(){
    //top-menu highlight link
    $(".photos").removeClass().addClass("active");
    $("a.fancybox").fancybox({
        'overlayShow' : true,
        '0opacity'       : true,
        'overlayOpacity': 0.6,
        'onStart' : function(){ $("body").css('overflow','hidden');},
        'onComplete': function(){ $("body").css('overflow','auto');}        
    });
});

5 个答案:

答案 0 :(得分:9)

我也试图让onStart工作......

我得到了fancybox v2.1.5,但当我在javascript文件中搜索' onStart '时,找不到它。当我搜索'.trigger'时,我发现:' beforeLoad '

也许这可以帮助某人,在我的情况下,这就是我所需要的:)

我还看到在某处可以使用“ onReady ”触发,而不是“ onComplete ”我猜错了!

P.S。我像这样使用它

$("a.popup").fancybox({
    beforeLoad: function() {
        return window.confirm('Continue?');
    }
});

答案 1 :(得分:4)

FancyBox<版本2

FROM EXAMPLE(fancybox.net):

    $("#various7").fancybox({
        onStart: function() {
            return window.confirm('Continue?');
        },
        onCancel: function() {
            alert('Canceled!');
        },
        onComplete: function() {
            alert('Completed!');
        },
        onCleanup: function() {
            return window.confirm('Close?');
        },
        onClosed: function() {
            alert('Closed!');
        }
    });

编辑:06-2015

FancyBox> =版本2

FROM EXAMPLE(fancyapps.com):

    $("#various7").fancybox({
        onUpdate: function() {
            alert('update!');
        },
        onCancel: function() {
            alert('cancel!');
        },
        onPlayStart: function() {
            alert('play start!');
        },
        onPlayEnd: function() {
            alert('play end!');
        },
        beforeClose: function() {
            alert('before close!');
        },
        afterClose: function() {
            alert('after close!');
        },
        beforeShow: function() {
            alert('before show!');
        },
        afterShow: function() {
            alert('after show!');
        },
        beforeLoad: function() {
            alert('before load!');
        },
        afterLoad: function() {
            alert('after load!');
        }
    });

答案 2 :(得分:2)

请注意,fancybox2中的回调方法不同。它使用beforeLoad,afterShow等。请参阅fancybox2的文档here

答案 3 :(得分:0)

试试这个:

$(document).ready(function(){
    $("a.fancybox").fancybox({
        'overlayShow' : true,
        'opacity' : true,
        'overlayOpacity': 0.6,
        'onStart' : function(){
            $("body").css('overflow','hidden');
        },
        'onCleanup': function(){
            $("body").css('overflow','auto');
        }
    });
});

答案 4 :(得分:0)

fancybox onStart onComplete状态无法正常使用jquery 1.9.1尝试jquery 1.6.4。