2016-10-02 10 views
0

Ich möchte eine Schaltfläche erstellen, die eine neue Klasse klickt, wenn darauf geklickt wird. Wenn diese neue Klasse angeklickt wird, wird goAway auf true gesetzt. Hier ist, was ich benutze, bemerkt jemand etwas, das dies verhindern würde? Es funktioniert in allen anderen Onclick-Funktionen, die folgende Zeile haben: goAway = true;Wie kann ich window.onbeforeunload mithilfe der jQuery-Klasse-Klickfunktion deaktivieren?

var goAway = false; 

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

Ich habe auch dies unten versucht, aber weder scheinen ...

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

Antwort

0

Endlich! Ich habe es herausgefunden. Befestigt ein JavaScript onClick-Ereignis auf das Element gesetzt mit jQuery wechseln;)

Die html-Taste:

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

Dann wird der Rest:

<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

Sie versuchen, eine von diesen kann zu arbeiten.

erste:

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

Zweite ein:

window.onbeforeunload = false; 

Ich hoffe, das für Sie arbeitet.

aktualisieren: ich bemerkt, dass Sie onbeforeunload Funktion innerhalb click Funktion gesetzt. Versuchen Sie einmal, diese Funktion außerhalb der Klickfunktion zu platzieren.

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

Leider kein Glück. Es scheint, als ob all die Dinge, die normalerweise funktionieren, nicht funktionieren, wenn ich window.onbeforeunload zuvor aktiviert habe. Nicht sicher, warum das passieren würde. – joseph

+0

Bitte überprüfen Sie das Update –

+0

Dies ist, weil ich nicht wollen, dass dies das Standardverhalten ist, möchte ich nur die Warnung angezeigt werden, nachdem sie auf die Schaltfläche geklickt haben. Dann möchte ich den zweiten Klick der gleichen Taste, um das zu deaktivieren;). Grundsätzlich ist die Seite mehrere Schichten tief mit jQuery toggles. Wenn sie zum Start zurückkehren, möchte ich nicht, dass sie beim Verlassen gewarnt werden. Nur wenn sie zurückschlagen, wenn sie gestartet sind, aber nicht zurückgelaufen sind. – joseph

Verwandte Themen