Hallo. Ich habe ein Problem mit der ajax-Funktion aus jQuery. Ich würde gerne einen Parameter, der zum Zeitpunkt des Aufrufs der ajax-Funktion bekannt ist, dem success-Callback übergeben – nur wie? Wie kann ich einem Callback einen Parameter von außen als Closure übergeben, wenn ich die Parameter des Callbacks nicht beeinflussen kann?
Grundsätzlich musst Du sicherstellen, dass sich die Variable später nicht mehr ändert, da ansonsten der überschriebene Wert genommen wird. Wenn Du z.B. auf den Wert x zugreifen willst, dann funktioniert folgender Code nur, wenn sich x nicht mehr ändert:
$.get('url', function(data) { alert(x); });
Wenn er sich ändern kann (was häufiger passiert, als man denkt), muss zuerst eine neue lokale Variable erzeugt werden, die sich nicht mehr ändert, also:
{ var y = x; $.get('url', function(data) { alert(y); }); }
oder als Argument einer Funktion:
function (y) { $.get('url', function(data) { alert(y); }); }(x);