Zurück   Flashforum > Alternative Technologien > JavaScript & jQuery

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-08-2009, 13:46   #1 (permalink)
Wetmaster
 
Benutzerbild von Nicmare
 
Registriert seit: Aug 2001
Ort: BERLIN
Beiträge: 3.075
[jQuery] Funktion global verfügbar machen?

Javascript mal wieder...
Habe hier eine schöne Funktion gebastelt die soweit auch bestens funktionert:
HTML-Code:
$('#navi a').click(function(e){
		e.preventDefault();
		var target = $(this).attr("href");
		
		var resizeTimer = null;
		
		$('#wrapper').stop().scrollTo( target, 1600, { easing:'easeOutQuart' } );
		$("#navi a").removeClass('disabled');
		$(this).addClass('disabled');
			
		function resetScroller() {
			$('#wrapper').stop().scrollTo( target, 100 );
		};
		$(window).bind('resize', function() {
			if (resizeTimer) clearTimeout(resizeTimer);
			resizeTimer = setTimeout(resetScroller, 0);
		});
    });
Problem ist aber das die letzte funktion (resetscroller) aber nur funktioniert solange #navi a aktiv ist. Daher will ich das gerne aus der click funktion rausnehmen. Aber dann funktioniert die variable "target" nicht mehr (logischerweise). Wie kann ich aber die volle funktionalität beibehalten und die letzte funktion außerhalb ausführen? wichtig ist dass var target = $(this).attr("href"); funktioniert damit die letzte funktion greift.
also ich meine diesen part:
HTML-Code:
function resetScroller() {
			$('#wrapper').stop().scrollTo( target, 100 );
		};
		$(window).bind('resize', function() {
			if (resizeTimer) clearTimeout(resizeTimer);
			resizeTimer = setTimeout(resetScroller, 0);
		});

Geändert von Nicmare (04-08-2009 um 13:47 Uhr)
Nicmare ist offline   Mit Zitat antworten
Alt 04-08-2009, 13:59   #2 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Dazu musst du die Variable target global verfügbar machen.

Ausserhalb der Klick-Funktion machst du deshalb:

Code:
var target = false;
Was die Variable global definiert. Innerhalb der Funktion kannst du nun mit

Code:
target = $(this).attr("href");
einen Wert zuweisen. Beachte hierbei dass das "var" weg fällt.
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 04-08-2009, 14:30   #3 (permalink)
Wetmaster
 
Benutzerbild von Nicmare
 
Registriert seit: Aug 2001
Ort: BERLIN
Beiträge: 3.075
ah, sehr gut. so geht das! (musste nur noch resizetimer global deklarieren)
danke
Nicmare ist offline   Mit Zitat antworten
Alt 14-08-2009, 11:54   #4 (permalink)
Nord-Workoholic
 
Benutzerbild von TinKim
 
Registriert seit: Mar 2004
Ort: Kiel
Beiträge: 937
Wenn Globales schon sein muss, wäre ein Namespace schöner. Den Rest scopen.
TinKim ist offline   Mit Zitat antworten
Alt 14-08-2009, 11:55   #5 (permalink)
Wetmaster
 
Benutzerbild von Nicmare
 
Registriert seit: Aug 2001
Ort: BERLIN
Beiträge: 3.075
damit kann ich leider nichts anfangen. Aber danke.
Nicmare ist offline   Mit Zitat antworten
Alt 14-08-2009, 12:10   #6 (permalink)
Nord-Workoholic
 
Benutzerbild von TinKim
 
Registriert seit: Mar 2004
Ort: Kiel
Beiträge: 937
Dieser Link macht glücklich:
http://www.amazon.de/gp/product/0596...SIN=0596517742
TinKim ist offline   Mit Zitat antworten
Alt 14-08-2009, 12:13   #7 (permalink)
Wetmaster
 
Benutzerbild von Nicmare
 
Registriert seit: Aug 2001
Ort: BERLIN
Beiträge: 3.075
Vielen Dank TinKim für deine Mühe. Damit kann ich auch nichts anfangen. Aber zum Glück ist das Problem auch schon gelöst ;-).
Nicmare ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele