2015-01-01 95 views
0

在我的JQuery中有兩個函數用於離開頁面的用戶。這個想法是,如果用戶關閉瀏覽器離開頁面,我們使用:如何停止window.unload事件

$(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方法。在這種情況下,是否有辦法在登出按鈕click函數內停止beforeunload觸發?

+3

改變之前就解除綁定的事件處理程序(用'$(窗口).unbind( 'beforeunload')')' location.href'。 – raina77ow

回答

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 
});