2016-10-02 51 views
0

我想創建一個按鈕,當它被點擊時切換一個新類,然後當這個新類被點擊時,它將goAway設置爲true。這是我正在使用的,有沒有人注意到會阻止這種情況的東西?它適用於所有其他onclick函數:goAway = true;如何使用jQuery類的單擊函數禁用window.onbeforeunload?

var goAway = false; 

$("button:not(.MyNewClass)").click(function(){ 
window.onbeforeunload = function() { 
if (!goAway) { 
return 'Syanara mutha ******'; 
     } 
    } 
}); 
$(document).ready(function() { 
     $('.MyNewClass').click(function() { 
     goAway = true; 
    }); 
}); 

我也試過這個下面,但既不似乎工作...

var goAway = false; 

$("button:not(.MyNewClass)").click(function(){ 
window.onbeforeunload = function() { 
if (!goAway) { 
return 'Syanara mutha ******'; 
     } 
    } 
}); 
$(document).ready(function() { 
     $('.MyNewClass').click(function() { 
     window.onbeforeunload = null; 
    }); 
}); 

回答

0

終於!我想到了。附帶一個JavaScript onclick事件設置爲使用jQuery切換元件;)

HTML按鈕:

<button onclick="removeWarning()">This is the button</button> 

那麼剩下:

<script> 
var goAway = false; 
$("button").click(function(){ 
$(this).toggleClass('MyNewClass'); 
window.onbeforeunload = function() { 
if (!goAway) { 
return 'Syanara mutha ******'; 
     } 
    } 
}); 
function removeWarning(){ 
if ($("button").hasClass('MyNewClass')){ 
goAway = true; 
    } 
} 
</script> 
0

你可以嘗試任何的這一個。

第一招:

$(window).unbind('onbeforeunload'); 

第二個:

window.onbeforeunload = false; 

我希望這對你的作品。

更新: 我注意到你放在裏面click功能onbeforeunload功能。 嘗試將此功能放在點擊功能的旁邊。

window.onbeforeunload = function() { 
    if (!goAway) { 
     return 'Syanara mutha ******'; 
     } 
    } 
+0

不幸的是,沒有運氣。好像所有通常工作的東西都不起作用,如果我以前啓用了window.onbeforeunload。不知道爲什麼會發生。 – joseph

+0

一旦請檢查更新 –

+0

這是因爲我不希望這是默認行爲,我只希望在點擊按鈕後出現警告。然後,我想要第二次點擊同一個按鈕,以禁用該功能;)。 基本上,該頁面使用jQuery切換幾層深。如果他們回到起點,我不希望他們離開後被警告。只有當他們一開始就回擊,但沒有回航。 – joseph