jQuery:fancybox如果关闭

Joh*_*son 1 jquery fancybox

FancyBox jquery问题

如果你通过按XI关闭它想得到一个警报("你忘了什么......").

我怎样才能做到这一点?

            $("a#uploadImage").fancybox({
            'titleShow'     : false,
            'width':    560,
            'height':   620,
            'autoDimensions': false,
            'overlayOpacity': 0.6
            });
Run Code Online (Sandbox Code Playgroud)

Vot*_*ple 5

默认功能是$.fancybox.close这样我可能会倾向于做...

$.fancybox.originalClose = $.fancybox.close;
$.fancybox.close = function() {
    // Do whatever you want. Then do the default behavior:
    $.fancybox.originalClose();
};
Run Code Online (Sandbox Code Playgroud)

这是一个黑客的东西,但它具有不需要任何修改库代码或原始标记的优势,不需要你直接操作该库定义,并自动调用你的代码的事件处理程序不论如何包装盒关闭.

要仅更改一个特定框的行为,最好将modal属性设置为true(这将禁用关闭框的所有内置方法),然后您可以添加自己的"保存"或"关闭"按钮无论你想要什么都有效.该框永远不会自动关闭,但您可以在准备好使用该$.fancybox.close()功能时将其关闭.

  • JavaScript的一个定义特征是函数只是数据.您可以将它们放在变量中,将它们放在其他变量中,用其他函数覆盖它们,并且通常用它们玩玩具字符串或对象.如果使用得当,它是该语言最强大的功能之一. (2认同)

Jan*_*nis 5

有一个回调'onCleanup',所以:

$("a#uploadImage").fancybox({
    'titleShow'     : false,
    'width':    560,
    'height':   620,
    'autoDimensions': false,
    'overlayOpacity': 0.6m,
    'onCleanup' : function() {
        return window.confirm('Close?');
    }
});
Run Code Online (Sandbox Code Playgroud)