[jQuery] Tab scrollt bei Aktivierung nach oben

Muepe32

Erfahrenes Mitglied
Hallo zusammen,

Ich habe ein Problem mit meinen Tabs in der Applikation. Ich habe in verschiedenen Tabs das gleiche Layout mit einem div für Textanzeige und einer textarea für Texteingabe. Nun kann es vorkommen, dass im div ganz ans Ende gescrollt wird (z.B. wenn eine neue Nachricht eintrifft) oder allgemein halt der User irgenwie scrollt. Nun habe ich das Problem, dass wenn der Tab inaktiviert wird (ein anderer wird ausgewählt) und dann wieder aktiviert ist die Scrollposition zurückgesetzt. Gibt es da zufällig ein Attribut, dass dieses Verhalten ändern kann oder braucht es da einen etwas anderen Workaround?

Besten Dank und viele Grüsse
Muepe
 
Ich habe im Netz einen Workaround gefunden (angeblich gibt es keine andere Möglichkeit) und diesen dann bisschen nach meinen Wünschen angepasst so dass nicht nur die Scrollposition des Tab-Panels sondern auch aller Kinder gespeichert wird und dann beim Anzeigen wiederhergestellt:
Javascript:
				$tabs = $('#main-tabs').tabs(
					{
						select: function(event, ui) {
							var prevTab = $(ui.panel).parent().children(".ui-tabs-panel:not(.ui-tabs-hide)");
							var childs = prevTab.children();
							prevTab.data("scrollTop", prevTab.scrollTop());
							childs.data("scrollTop", childs.scrollTop());
						},
						show: function(event, ui) {
							var tab = $(ui.panel);
							if(tab.data("scrollTop"))
								tab.scrollTop(tab.data("scrollTop"));
							tab = tab.children();
							if(tab.data("scrollTop"))
								tab.scrollTop(tab.data("scrollTop"));
						}
					}
				);
 
Zurück