【问题标题】:Two close events in FancyboxFancybox 中的两个关闭事件
【发布时间】:2026-02-23 16:25:02
【问题描述】:

我的弹出式 ajax 联系表单遇到问题,因为它只有一个关闭事件...

我的 AJAX 联系表有两个按钮发送和取消。 当我使用发送按钮时,甜蜜警报确认显示正确消息。 但是当我通过按钮 CANCEL 关闭窗口或单击窗口外或使用角落上的 X 按钮时,会显示相同的确认消息,这是问题

我的js代码

           $('#button').fancybox({
            'hideOnContentClick': false,
            'afterClose' : function(){
                swal({
                    title: 'Thanks dude!',
                    text: 'You are awesome!',
                    type: 'success',
                    showConfirmButton: false,
                    timer: '5000'
                });
            }
            });

我的 ajax 调用

                $.ajax({
                    url: "ajax_form.php",
                    post: "POST",
                    data: $('#contact').serialize(),
                    dataType: "json"
                });     $.fancybox.close();

所以当有人点击发送按钮 $.fancybox.close();将关闭窗口,Sweet Alert 会提供很好的信息并取得巨大成功。 当有人使用 CANCEL 按钮或使用其他关闭操作时,如何添加或禁用 Sweet Alert 确认?

【问题讨论】:

    标签: javascript jquery ajax fancybox sweetalert


    【解决方案1】:

    换个思路想关闭它,可以尝试在fancybox外的CANCEL、X按钮和父元素上加一个通用类什么的。然后使用 jQuery(或 JS),您可以定义一个函数来关闭它并避免 ajax 调用。 比如添加一个普通类class="preventAjax"。然后用 jQuery:

    $('.preventAjax').click(function() {$.fancybox.close();});
    

    除此之外,您可以使用 Css 关闭它,但我建议使用 API 提供的命令关闭它。

    希望有帮助!

    【讨论】: