我在我的应用程序中使用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附近.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。