将 jquery 函数绑定到 fancybox .close() 事件

Posted

技术标签:

【中文标题】将 jquery 函数绑定到 fancybox .close() 事件【英文标题】:bind a jquery function to fancybox .close() event 【发布时间】:2011-08-10 17:27:32 【问题描述】:

我想触发一个基于fancybox 关闭的简单jQuery 函数。它是页面上唯一的fancybox

$.fn.fancybox.close = function() 
    $('#sub_cont').hide(250, function() 
    $('#IDsearchform input').val('');
    );
 );

以上方法当然不行

【问题讨论】:

使用onClosed选项初始化fancybox怎么样? 【参考方案1】:

*更新:* 请注意@mathoiland 的回答,“看起来 Fancybox 2 已弃用 onClosed 回调。它现在使用 afterClose。”如果您使用的是 FancyBox 2.x

将 onClosed 选项传递给 fancybox 函数。

即:

$("<YOUR-SELECTOR>").fancybox(
  onClosed: function() 
    $('#sub_cont').hide(250, function() 
    $('#IDsearchform input').val('');
    );
  )
);

【讨论】:

谢谢它对我来说很好 :-) 但你需要像这样添加单引号 'onClosed' onClosed 已折旧请使用afterClose @Ajmal 您是否关心您阅读了这篇文章,其中我提到了我提出的解决方案(在我回答问题时有效),现在已被弃用并检查 matthoiland 的答案?不知道为什么你仍然认为答案会被否决......不是我在乎......【参考方案2】:
$("#myfancybox").fancybox(
    'onClosed'  : function() 
             $('#sub_cont').hide(250, function() 
                $('#IDsearchform input').val('');
             );
    
);

【讨论】:

【参考方案3】:

只是一个注释。看起来 Fancybox 2 贬低了 onClosed 回调。它现在使用 afterClose。

请参阅“回调”下的新文档。 http://fancyapps.com/fancybox/

【讨论】:

【参考方案4】:

在最新版本的 fancybox 中,您可能需要使用 'afterClose' 代替 'onClosed'

所以这段代码..

$("<YOUR-SELECTOR>").fancybox(
  onClosed: function() 
    $('#sub_cont').hide(250, function() 
    $('#IDsearchform input').val('');
    );
  )
);

应该变成……

$("<YOUR-SELECTOR>").fancybox(
  afterClose: function() 
    $('#sub_cont').hide(250, function() 
    $('#IDsearchform input').val('');
    );
  )
);

【讨论】:

以上是关于将 jquery 函数绑定到 fancybox .close() 事件的主要内容,如果未能解决你的问题,请参考以下文章

如何将“addThis”社交集成添加到灯箱(jquery prettyphoto 或 jquery fancybox)中?

用jquery设置fancybox高度

FancyBox iFrame 元素上的绑定事件

Rails 3.2.13 - 没有路线匹配 [GET] "/js/jquery.fancybox.js"

jQuery FancyBox Iframe - 在fancybox 中使用$(document).ready?

jQuery-plugin-fancybox