将一个jQuery函数绑定到Fancybox的.close()事件上。

30

我想在fancybox关闭时触发一个简单的jQuery函数。页面上只有一个fancybox。

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

当然,以上方法不起作用。


当您使用onClosed选项初始化fancybox时,怎么样? - Matt
4个回答

49
更新:如果您使用的是FancyBox 2.x,请注意@mathoiland的答案:“看起来Fancybox 2已弃用onClosed回调。现在使用afterClose。”
将onClosed选项传递给fancybox函数。
例如:
$("<YOUR-SELECTOR>").fancybox({
  onClosed: function() {
    $('#sub_cont').hide(250, function() {
    $('#IDsearchform input').val('');
    });
  })
});

1
谢谢,它对我很有效 :-) 但是你需要像这样添加单引号 'onClosed' - Peeyush
8
onClosed已过时,请使用afterClose - Ajmal Salim
@Ajmal,你有没有关注我在帖子中提到的内容?我提出的解决方案(当我回答问题时是有效的)现在已经过时了,需要检查matthoiland的答案。我不确定为什么你仍然认为这个答案应该被downvote...不是我在意... - Chandu

34

仅作提示。看起来Fancybox 2已经弃用了onClosed回调函数,现在使用afterClose。

请查看"Callbacks"下的新文档。http://fancyapps.com/fancybox/


18

在最新版本的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('');
    });
  })
});

7
$("#myfancybox").fancybox({
    'onClosed'  : function() {
             $('#sub_cont').hide(250, function() {
                $('#IDsearchform input').val('');
             });
    }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接