javascript – 如何全局处理fancybox的onClose事件?

前端之家收集整理的这篇文章主要介绍了javascript – 如何全局处理fancybox的onClose事件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的应用程序中使用fancybox.现在要处理close事件,我们写了类似的东西:
$(".fancybox").fancybox({onClose:function(){alert('blah');}}

如此文档页面所示:

http://fancyapps.com/fancybox/#docs

但是我想为所有fancybox编写一些常见且全局的东西,每次都可以为任何fancybox运行.我怎么做?简而言之,我不想在每个fancybox上编写onClose的代码,也不希望它依赖于class,id(例如,在这种情况下为.fancybox).我怎么做?我试着写:

$.fancybox({onClose:function(){alert('blah');}}

但它不起作用,从文档中看起来这是以程序方式打开的功能.

解决方法

我不确定这是否是最好的解决方案,但我会选择一个发布/子模式,所以,在你的fancybox中你应该做那样的事情.
$(".fancybox").fancybox(
{   onClose:function(){
                $(window).trigger('fancyboxClosed');
            }
});

然后,代码中的某个地方:

$(window).on('fancyboxClosed',function(){
    // Your global function for fancybox closed
});

我不太了解你的目的,但请记住,你总是可以传递一个命名函数而不是一个匿名函数,所以你总是触发相同的函数.

如果您想根据每个fancybox制作不同的东西,上面的示例应该是可行的方法.

此外,您可以将事件附加到您想要的任何对象.为方便起见,只是使用窗口

编辑

您也可以编辑您的fancybox来源(编辑1.3.4)只需添加$(window).trigger(‘fancyboxClosed’);到953附近.

猜你在找的JavaScript相关文章