24. november 2004 - 06:02Der er
10 kommentarer og 3 løsninger
setTimeout der kalder et objekt (this)
Jeg har rodet rundt med at kunne oprette et objekt i forbindelse med reload af et image dertil byggede jeg en klasse (objekt) hvor der i klassen er en setTImeout funktion. MEN jeg kan ikke hitte hvordan jeg sender et objekt med i setTimeout´en.
eks. var periode = new Periode()
function Periode(){ this.iLoop = 10 }
Periode.prototype.myLooop = function(){ this.iLoop++ if( this.iLoop < 10){ setTimeout("this.myLoop()", 1000) } else { alert("OleBole er min helt nummer ét og slutprut") return } }
Det der ikke virker er setTimeout("this.myLoop()"... hvad gør en klog mand ?
thomas yde >> ja det virker MEN hvis jeg nu initierer objectet som nedenstående spiller det ikke: var sitemark = new Periode()
powernodes >> virker ikke får en fejl function Periode(){ this.iLoop = 1 }
Periode.prototype.myLooop = function(){ var obj = this this.iLoop++ if( this.iLoop < 10){ alert("timeout"); setTimeout("obj.myLooop()", 1000) } else { alert("OleBole er min helt nummer ét og slutprut") return } }
Callbacks og timeouts skal man liiiige øve sig lidt på i JS-OOP, men når først logikken går op for én, er det ikke så langhåret endda ;o)
Opret den variabel, powernodes viste dig og læg så kaldet i en anonym funktion - så triller Julesvinet derudad: setTimeout(function(){obj.myLooop()}, 1000)
<script language="Javascript"> var periode = new Periode()
function Periode(){ this.iLoop = 1 }
Periode.prototype.myLooop = function(){ var obj = this;
this.iLoop++ if( this.iLoop < 10){ alert("timeout"); setTimeout(function(){obj.myLooop()}, 1000) } else { alert("OleBole er min helt nummer ét og slutprut") return } } </script>
dammit anede ikke at man kunne smide anonym funktion ind (har lige læst msdn omkring setTimeout og der står det jo højt og larmende *tsktsk* Anyway thanx for the help guys og jeg deler pointsne til jer begge pga at i begge har kodet på det på samme tid med samme løsning :-)
Nu tilkommer det jo ikke mig at bestemme pointfordelingen - men faktisk synes jeg, powernodes burde have 'en slik' for et yderst vigtigt indspark. Uden at oprette en variabel, der refererer til objekt-instansen, kan vi ikke få fat i instansen med nok så mange anonyme funktioner. Bevares, det ville under alle omstændigheder være blevet løst (jeg ved jo, hvor han har lært 'tricket' ... hehe), men han bidrog trods alt med en meget vigtig detalje :)
thomas >> Prøv at skille din PC ad og se, hvem der ligger og lurer bag din CPU-sokkel ;D
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.