如何使用jQuery类单击功能禁用window.onbeforeunload?

时间:2016-10-02 03:38:06

标签: javascript jquery

我想创建一个按钮,在单击时切换新类,然后在单击该新类时,将goAway设置为true。这是我正在使用的,有没有人注意到会阻止这种情况的东西?它适用于所有其他具有以下行的onclick函数:goAway = true;

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

2 个答案:

答案 0 :(得分:0)

你可以尝试其中任何一个。

第一个:

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

第二个:

window.onbeforeunload = false;

我希望这适合你。

<强>更新: 我注意到您在onbeforeunload函数中放置了click函数。 尝试将此功能放在点击功能的一侧。

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

答案 1 :(得分: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>