• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Slideup

glupto

New member
Hallo, ich lasse für neue Nutzer einen Abschnitt einblenden, in dem er auf Neuerungen hingewiesen wird und Buttons angeboten bekommt. Er kann entweder den Abschnitt schließen, ihn nie mehr sehen wollen (wird im localstorage gespeichert) oder direkt zu den Einstellungen gehen. Das funktionierte auch, jetzt habe ich hinzugefügt, dass der Abschnitt nach einer Weile von selbst nach oben slidet, Jetzt bringen die entsprechenden Buttons den Abschnitt aber nicht mehr zum Schließen, obwohl beispielsweise die Aufforderung, dass nie mehr zu zeigen, durchaus registriert und in den localstorage gespeichert wird.

Code:
        <div id="configure-media2">Sie können jetzt die Medien auswählen <span class="bold"> UND SORTIEREN </span>, die Sie auf der Startseite sehen wollen: 
<a href="beta__fc3f.php" class="sende1">Hier klicken</a> oder im Menü unter <img src="options-sm.ico" alt="option-Symbol" class="optico">
<br><br>
            <button id="close-configure-media2-only" class="sende1">Schließen</button>
            <button id="close-configure-media2" class="sende1">Hinweis nicht mehr zeigen</button>
        </div>

    <script>


          if (localStorage.getItem("dont-show-again2")) $("#configure-media2").css({display: "none"});
 
          
            $("#close-configure-media2").on("click", function () {
                $("#configure-media2").slideUp();
                localStorage.setItem("dont-show-again2", 1);
            });
                $("#close-configure-media2-only").on("click", function () {
                $("#configure-media2").slideUp();
            });
          $("#configure-media2").delay(5000)
                       .slideUp(1000);

</script>

Hat jemand eine Erklärung, warum die Buttons nicht mehr zum Schließen führen?

Gruß und Dank glupto
 
Hat jemand eine Erklärung, warum die Buttons nicht mehr zum Schließen führen?
weil .delay(5000) und .slideUp(1000) animationen sind, die in einer queue abgearbeitet werden.
wenn du von vornherein .delay(5000) und .slideUp(1000) einträgst, und dann auf knopfdruck nochmal .slideUp()
steht in deiner q also .delay(5000).slideUp(1000).slideUp() und wird in dieser reihenfolge abgearbeitet.
.finish() | jQuery API Documentation
 
okay, danke. Habe es jetzt so versucht, dann schließt er aber erst beim zweite Mal.
Code:
               $("#configure-media2").delay(5000)
                       .slideUp(1000);
            $("#close-configure-media2").on("click", function () {
                $("#configure-media2").slideUp().clearQueue().finish();
                localStorage.setItem("dont-show-again2", 1);
            });
                $("#close-configure-media2-only").on("click", function () {
                $("#configure-media2").slideUp().clearQueue().finish();
            });
 
.clearQueue() und .finish() ist doppelt geleert
.delay(5000).slideUp(1000).slideUp().clearQueue().finish();
schreibt .delay(5000) in die q dann slideUp(1000) dann slideUp()
clearQueue() löscht dann slideUp(1000) und slideUp()
finish() beendet delay(5000)
 
okay, so klappt es jetzt:
Code:
            $("#close-configure-media2").on("click", function () {
                $("#configure-media2").clearQueue().slideUp();
                localStorage.setItem("dont-show-again2", 1);
            });
                $("#close-configure-media2-only").on("click", function () {
                $("#configure-media2").clearQueue().slideUp();
            });
     
 $("#configure-media2").delay(5000)
                       .slideUp(1000);

Danke für die Hilfe
 
Code:
            $("#close-configure-media2").on("click", function () {
                $("#configure-media2").finish();
                localStorage.setItem("dont-show-again2", 1);
            });
                $("#close-configure-media2-only").on("click", function () {
                $("#configure-media2").finish();
            });
     
 $("#configure-media2").delay(5000)
                       .slideUp(1000);
wäre auch gegangen, aber so ist das auch ok
 
Aber dann hätte er ja bei Click auf die button kein slideup gemacht, sondern nur im einen Fall den Wert in localstorage geschrieben und dann gewartet, bis das delay zu Ende ist.
 
finisch führt alle animationen die noch in der q sind instant aus. sozusagen im schnelldurchlauf bzw. setzt finisch einfach die endwerte
 
Zurück
Oben