我的JQuery中有两个函数可以作用于离开页面的用户。我们的想法是,如果用户通过关闭浏览器离开页面,我们使用:
$(window).bind('beforeunload', function() {
return "Are you sure you want to leave this page without saving or submitting?";
});
现在,我们想要询问用户是否只有在他们退出网页时才会保存他们的进度,使用:
$("#logoutButton").click(function(e) {
var result = confirm("Would you like to save before logging out?");
if(result == true) {
$("#savebutton").click(); //simulate a click on save before redirecting
}
window.location.href = "www.redirectPage.com"; //go to logout page regardless of choice
});
现在,我面临的问题是,无论何时用户点击注销,它都会正确执行保存检查,但仍然会使用beforeunload
方法询问用户是否要离开页面。有没有办法阻止beforeunload
在这种情况下从logoutbutton click
函数内部触发?
答案 0 :(得分:1)
您可以使用.unbind()
删除给定事件的所有事件处理程序。在你的代码中,那将是
$(window).unbind('beforeunload');
保存后立即调用:
$("#logoutButton").click(function(e) {
var result = confirm("Would you like to save before logging out?");
if(result == true) {
$("#savebutton").click(); //simulate a click on save before redirecting
$(window).unbind('beforeunload');
}
window.location.href = "www.redirectPage.com"; //go to logout page regardless of choice
});