| 

.NET C# Java Javascript Exception

3
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?
News:
04.06.2011
WebDevX 31 1
2 Antworten
2
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);
06.06.2011
theorist 494 5
1
var myVar = 0;
$.get('url', function(data){
alert(myVar);
});

//oder
var myVar = 0;
var myCallback = function(myVar1) {
return function(data, myVar1) {
// ..
};
};
$.get('url', myCallback(data, myVar);
04.06.2011
Floyd 11,0k 3 9
Also ich hab das mal ausprobiert, weil ich das gleiche Problem habe - bei mir funktioniert weder der eine noch der andere Ansatz :-(
Golo Roden 05.06.2011
Dann machst du was anderes falsch. Siehe: http://jsfiddle.net/UCPRD/
Poste doch bitte mal ein wenig Quellcode.
Floyd 05.06.2011

Stelle deine Javascript-Frage jetzt!