除了页面上的某些内容之外,防止离开页面

时间:2016-02-23 21:56:22

标签: jquery

我已就这方面准备了许多SO问题,但没有找到符合我需求的问题。

我希望当有人试图离开某个页面时会弹出一个确认框,除非我有特殊原因。

//This currently blocks everything even legitimate ways I'm ok with them leaving
// Warning
        $(window).on('beforeunload', function () {
            return "Any changes will be lost";
        });

如果点击了这些特定链接,我不希望显示此消息。我可以在一个页面上有一个链接或数百个。

<a href="/Quote/PlanDetails?planID=6435&amp;rateID=689142" class="button button-3d button-mini button-rounded button-green nomargin">Select</a>

这甚至可能吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试在点击上添加一个类,然后可以检查。简单的事情应该有效

$('.button').click(function(){
    $(this).toggleClass('check-leave');
});

然后只需检查是否有任何元素与现有代码一起使用此类

$(window).on('beforeunload', function () {
    if($('.button').hasClass('check-leave')){
        return "Any changes will be lost";
    } else {
        //continue
    }
});

示例小提琴(当'check-leave'类处于活动状态时,链接被设置为具有红色文本)

https://jsfiddle.net/sm1215/vx7uyfyf/1/