Ich habe eine Webseite, wo nur registrierte Benutzer sein können.
Ich benutze Bootstrap als CSS Framework.
Wenn der Benutzer angemeldet wird es eine Warnung mit einem successmessage so aussehen:Wie führe ich eine Funktion nur einmal mit jquery aus?
<div class="container">
<div class="alert alert-success" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<strong>Success!</strong> You have been signed in successfully!
</div>
</div>
Jetzt möchte ich das nach ein paar Sekunden schließen. Ich benutze dieses jquery Skript zu tun, dass:
window.setTimeout(function() {
$(".alert").fadeTo(500, 0).slideUp(500, function(){
$(this).remove();
});
}, 1500);
Wie kann ich diesen Code nur einmal ausgeführt, so dass, wenn der Benutzer versehentlich den Browser aktualisiert nicht diese Warnung wieder sehen?
Ich habe diesen Beitrag hier https://stackoverflow.com/a/23859937/5930557 lesen und wissen, dass sie mit der .one()
Funktion von http://api.jquery.com/one/
getan werden kann, aber ich weiß nicht, wie es in meinem Code aufzunehmen. Ist jemand da, der es für mich korrigieren kann und erklären kann, weil jquery und Javascript neu für mich sind: P
Mit einem aufgefrischt Browser die eine() Funktion wird nicht helfen, Sie könnten versuchen, eine Variable in localstorage Einstellung, mit einer Art Sitzungs-ID, gegen die Sie nachsehen. – JohannesB
Wenn der Benutzer die Seite aktualisiert, wird das Skript neu geladen, so dass one() nicht funktioniert. Ich würde dafür einen Cookie oder eine Sitzung verwenden. Wenn die Sitzung oder das Cookie vorhanden ist, werde ich das Skript nicht ausführen, sonst wird es ausgeführt. – Pierre
Cookies oder localStorage, oder rufen Sie einfach die Funktion auf, die den Alarm bei der Anmeldeerfolgsfunktion anzeigt. – Brian