我正在尝试将自定义动作插入花哨的关闭按钮,但没有发生任何事情,为什么会这样?
我的代码
$(".fancybox-close").click(function(){
$("#main-menu-nav a").removeClass("active");
$("footer").toggleClass("down", 400);
});
答案 0 :(得分:4)
Fancybox有一个回调onClose你可以在其参数中定义
请尝试使用:
$("#TARGET_ELEMENT").fancybox({
'OTHER_PARAM':'OTHER_PARAM_VALUE',
'onClosed': function() {
alert("FIRED_ON_CLOSE");
}
});
快乐的编码!
答案 1 :(得分:1)
$("footer").toggleClass("down", 400);
是无效的jQuery代码,toggleClass的第二个参数必须是布尔值http://api.jquery.com/toggleClass/。
答案 2 :(得分:1)
Fancybox v1
为API提供了在Fancybox关闭时调用的onClosed
方法
Fancybox v2
为API提供了在Fancybox关闭时调用的afterClose
方法。
Tips & Tricks页面有使用此公共回调的方法,如下所示:
$("#tip5").fancybox({
'scrolling' : 'no',
'titleShow' : false,
'afterClose' : function() {
$("#main-menu-nav a").removeClass("active");
$("footer").toggleClass("down", 400);
}
});
使用此方法调用自定义操作将确保在单击叠加层以关闭Fancybox时调用它们,因为未单击按钮本身。
状态更新: Per Simon在此页面上的回答,请注意他自switch parameter
方法的.toggleClass();
可能存在问题,因为400
方法的值{{1}}除非(如评论所述),您使用 jQuery UI ,否则可能无法达到预期效果。