1

我正在尝试将自定义操作插入到花哨的关闭按钮中,但什么也没发生,这是为什么呢?

我的代码

$(".fancybox-close").click(function(){
    $("#main-menu-nav a").removeClass("active");
    $("footer").toggleClass("down", 400);
});
4

3 回答 3

4

Fancybox 有一个回调 onClose 你可以在它的参数中定义

请尝试使用:

$("#TARGET_ELEMENT").fancybox({
 'OTHER_PARAM':'OTHER_PARAM_VALUE',
 'onClosed': function() {
   alert("FIRED_ON_CLOSE");
  }
 });

快乐编码!

于 2012-07-12T08:40:51.547 回答
1

$("footer").toggleClass("down", 400);是无效的 jQuery 代码,toggleClass 的第二个参数必须是布尔值 h​​ttp ://api.jquery.com/toggleClass/

于 2012-07-12T08:41:35.597 回答
1

Fancybox v1为 API 提供一个onClosed在 Fancybox 关闭时调用的方法。
Fancybox v2为 API 提供一个afterClose在 Fancybox 关闭时调用的方法。

提示和技巧页面具有使用此公共回调的方法,如下所示:

$("#tip5").fancybox({
    'scrolling'     : 'no',
    'titleShow'     : false,
    'afterClose'        : function() {
       $("#main-menu-nav a").removeClass("active");
       $("footer").toggleClass("down", 400);
    }
});

使用此方法调用您的自定义操作将确保在单击覆盖以关闭 Fancybox 时调用它们,因为未单击按钮本身。

状态更新:根据西蒙在此页面上的回答,请注意他的观点,即您可能对switch parameterfor方法有疑问,因为除非(如评论所述)您使用jQuery UI.toggleClass(); ,否则值400可能无法达到您的预期。

于 2012-07-12T08:43:22.550 回答