Ich habe ein kleines Problem mit meinem Code und kann keine Lösung finden. In meiner Seite gibt es eine obere Leiste mit Links (Home, About, Sign-up), jeder Link besitzt seinen eigenen Inhalt. Angenommen, der Nutzer sieht sich gerade den Inhalt "Home" an und klickt dann auf "About". Die Seite soll den Inhalt "Home" ausblenden und dann den Inhalt "About" anzeigen.Blocklink beim Animieren wechseln
Ich habe jedoch festgestellt, dass es einen Fehler gibt, wenn Sie auf einen anderen Link klicken, während ein Inhalt animiert wird. Daher habe ich eine Variable namens AllowLinkSwitch
erstellt, um den Benutzer daran zu hindern, zu einem anderen Link zu wechseln, wenn noch eine Animation läuft.
this.ContentHideThenShow = function(contentHide, contentShow, contentShowHeight)
{
this.AllowLinkSwitch = false;
$(contentHide).animate({
height: "0px"
}, 300, function(){
$(contentHide).hide();
$(contentShow).show();
$(contentShow).animate({
height: contentShowHeight
}, 300, function(){ this.AllowLinkSwitch = true; });
});
}
Zuerst stelle ich AllowLinkSwitch
-false
, wenn die Funktion aufgerufen wird, und legen Sie es dann zu true
wenn die Animation endet, aber die Variable wird nie wieder auf true
gesetzt, und ich kann auf andere Verbindungen nicht wechseln, die oben Code funktioniert nur, wenn ich die this.AllowLinkSwitch = true;
Zeile außerhalb der Animate-Funktion setzen, aber ich will nicht, dass es so funktioniert, weil der Fehler immer noch auftritt, muss ich diese Variable auf true
setzen, sobald die Animation endet, kann jemand helfen?
Vielen Dank! Es hat einfach super funktioniert !!! Diese Funktion gehört eigentlich zu einem Konstruktor, wie du vielleicht bemerkt hast, also habe ich jetzt ein privates "_this" erstellt, um es dort zu verwenden, wo ich ähnliche Probleme hatte, vielen Dank! Ich habe seit Stunden versucht, herauszufinden, was mit ihm los war ... –