setTimeout i klasser

Tags:    javascript

Hej jeg sidder lige med et lille problem i javascript
jeg har bygget en række funktioner som virker perfekt og vil lave dem til en klasse
problemet er så at i en af funktionerne bruger jeg setTimeout ikke et problem i sig selv men når den skal kalde den funktion den stå i hvordan skal man så gøre:

setTimeout('this.func()',1) // siger det ikke er en function
setTimeout('func()',1) // siger den ikke er defineret
setTimeout('this.func',1) // gør ingen ting
setTimeout('func',1) // gør ingen ting

hvis ikke der findes en løsning så måske et alternativ!!!





2 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 8 karma
Sorter efter stemmer Sorter efter dato
setTimeout("FunktionsNavn();", tid);

Det virker, og hvis den ikke kan finde funktionen er det sansyneligvis fordi den ikke eksisterer.



Hej jeg sidder lige med et lille problem i javascript
jeg har bygget en række funktioner som virker perfekt og vil lave dem til en klasse
problemet er så at i en af funktionerne bruger jeg setTimeout ikke et problem i sig selv men når den skal kalde den funktion den stå i hvordan skal man så gøre:

setTimeout('this.func()',1) // siger det ikke er en function
setTimeout('func()',1) // siger den ikke er defineret
setTimeout('this.func',1) // gør ingen ting
setTimeout('func',1) // gør ingen ting

hvis ikke der findes en løsning så måske et alternativ!!!



Hej.

Det Mathias skriver virker ikke hvis functionen er i en klasse. Hvis jeg har forstået dig ret så prøv det her:

<script>

function MyClass() {

this.MyProperty = "Hello,";

this.MyFunc1 = function(){
var self = this;
setTimeout(function(){ self.MyFunc2(self.MyProperty, "World.!");}, 200);
}

this.MyFunc2 = function(arg1, arg2){
alert(arg1+ " " +arg2);
}

}


test = new MyClass();

test.MyFunc1();

</script>

Som du ser i eksemplet tager MyFunc2 2 parametere, men hvis du ikke har brug for det kan du bare fjerne dem :)



t