• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

callback in Classe

saschaa

New member
Hallo Zusammen

Ich habe folgende Klasse, leider funktioniert das so nicht...
komme vom c++, dadurch auch ein wenig meine Probleme....

Ziel ist es alle Daten zu Laden und wenn alle Daten geladen sind möchte ich die callback Funktion aufrufen.
Ziel ist es das mit einer Klasse zu machen. dort wo Bold ist gibt es ein Problem im Jquery.

Was ist den an meiner Klasse falsch, was mit dem this.innerCallback?

HTML:
var c_myclass = new function(callback) {
    this.cCallback = callback;
    this.load = function ( ){
	for( var i=0; i<List.length; i++ ){
		...
		var shaderName = splitted[splitted.length-1];
		[B]$(document).load( vertexShaderFile, this.innerCallback(Name) );[/B]
		$(document).load( fragmentShaderFile, this.innerCallback(Name) );
	}
    };
    
    this.innerCallback = function ( name,){
		return function(data){
			iNrOfShadrs++;
			if( iNrOfShadrs == g_List.length ){				
				this.cCallback ();
			}
		};
     };
}

und so ist der aufruf:
c_myclass.load(mycallback());


Vielen Dank
Sascha
 
Zuletzt bearbeitet von einem Moderator:
da gibt es mehrere Probleme,
- syntax error bei function ( name,){
- c_myclass.load(mycallback()); übergibt keinen callback, sondern das ergebnis/return value von mycallback()
- this.innerCallback(Name) ist Name irgendwo definiert?
 
Denke mal das du ein Scope-Problem hast, weil this bei $(document).load( fragmentShaderFile, this.innerCallback(Name) ); auf document zeit und nicht auf dein Objekt. Auch ist aus deinem Code nicht ersichtlich wo die Variable Name für den Aufruf deklariert bzw. befüllt wird.
Evtl. hilft es das Objekt vorher in eine Variable zu speichern:
Code:
var myThis = this;
$(document).load( fragmentShaderFile, myThis.innerCallback(Name) );
 
Hallo

Vielen Dank für die Antwort. War ein wenig abwesend...
Habe euren Rat befolgt und nur noch ein Problem, was muss ich für die Zuordnung der Callback Funktion machen?

HTML:
var c_myclass = new function(callback) {
var myVar = this;    
this.cCallback = callback;

 this.innerCallback = function ( name){
		return function(data){
			iNrOfShadrs++;
			if( iNrOfShadrs == g_List.length ){				
				myVar.cCallback();
			}
		};
     };
geht nicht.

Vielen Dank
Gruss Sascha
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben