dedlfix: JQuery - Kann nicht auf Variable in verschachtelter Funktionen zugreifen

Beitrag lesen

Tach!

var test1000 = function (){
	return wasBinich = tests();
	
	$.get("datei.html", 
			function tests (data){
				var innen = "Innere Werte";
				return innen;
			}
		);
}

console.log("test1000: " + test1000());

Du kannst tests() nicht auf diese Weise aufrufen. Diese Funktion steht nur als Parameter von $.get() zur Verfügung. Ihr Name ist außerhalb nicht bekannt. Eigentlich bruacht sie auch gar keinen Namen. Jedenfalls bekommst du eine Fehlermeldung in der Konsole. Die solltest du eigentlich sehen. Im Allgemeinen sollte man beim Entwickeln im Browser und bei Javascript im Speziellen immer die Konsole geöffnet haben, damit man solche Fehlermeldungen sieht.

Damit bekomme ich keinen Wert zurück.

Dein Problem ist, dass du die asynchrone Arbeitsweise von $.get() und XHR-Aufrufen beachten musst. Solche Funktionen kehren sofort zurück, ohne ihre Aufgabe erledigt zu haben. Das Ergebnis kommt ja erst irgendwann, wenn der Request gesendet und die Response empfangen wurde. Erst dann wird die Callback-Funktion aufgerufen. Und nur innerhalb von dieser oder in davon aufgerufenem Code kannst du auf das Ergebnis zugreifen.

(K)eine Alternative wäre, synchron zu arbeiten. Das ist allerdings unangenehmer für deien Besucher, weil der Browser dann blockiert. Deine Webseite lässt sich nicht bedienen, solange Request und Response noch auf dem Weg sind.

dedlfix.