Toon posts:

[JS] Functie doet het maar één keer?

Pagina: 1
Acties:

Verwijderd

Topicstarter
OK op deze pagina: http://www2.hku.nl/~jaap3/nidex.html staat een script. Als je op de 'push' button klikt verspringen de blokjes van kleur.
Hiervoor gebruik ik een functie. Het gekke is alleen dat die functie het maar één keer doet! Hoe kan dat vraag ik me af... heeft iemand een idee?

Daarnaast wil ik graag weten hoe je de browser (canvas) breedte krijgt zonder de scrollbar. De door mij gebruikte browserWidth = document.body.clientWidth; werkt om een of andere reden niet.

  • André
  • Registratie: Maart 2002
  • Laatst online: 25-08 14:15

André

Analytics dude

offsetWidth of innerWidth.

En als je een alert() in je recolorSquares() zet, geeft hij die wel dan?

Verwijderd

Ik denk dat je de variabelen in je functie dan opnieuw op 0 (of ander getal) moet zetten.
document.body.offsetWidth misschien?

Verwijderd

Topicstarter
jep... een alert in de functie word iedere keer weergegeven maar de rest die de functie moet doen wordt niet gedaan lijkt het wel. Ik zal ff in elke stap een alert proberen.

Verwijderd

Topicstarter
jep ik was vegeten de i opnieuw op 0 te zetten. Blijkbaar gaf dat geen error omdat i al wel een waarde had vanuit een andere functie... stom!

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

i heeft automatisch waarde 0 als het script voor de eerste keer draait, maar daar was je zelf ook al achter.

* Rataplan moet sneller leren debuggen :(

:)


Journalism is printing what someone else does not want printed; everything else is public relations.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 09:03

crisp

Devver

Pixelated

JavaScript:
1
for(i=0; i<amount; i++){

i krijgt hier dus een globale scope en wordt in recolorSquares ook niet geinitialiseerd.
Verder kan je document.body.clientWidth / clientHeight pas uitvragen als de body totaal gerenderd is. Let ook op dat deze attributen IE-only zijn!

Intentionally left blank


Verwijderd

Topicstarter
nou document.body.clientWidth werkt wel, maar zo gauw er een scrollbar te zien is in mozilla vallen de blokjes uit de lijn. Aangezien ik de browserwidth gebruik om te berekenen hoeveel blokjes ik maximaal kan tekenen en het in IE wel werkt denk ik dat het aan de scrollbar ligt. De gesuggereerde andere manieren van meten hadden ook geen zin. (misschien ligt de fout dan toch bij mij :))

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 09:03

crisp

Devver

Pixelated

Verwijderd schreef op 16 januari 2003 @ 12:58:
nou document.body.clientWidth werkt wel, maar zo gauw er een scrollbar te zien is in mozilla vallen de blokjes uit de lijn. Aangezien ik de browserwidth gebruik om te berekenen hoeveel blokjes ik maximaal kan tekenen en het in IE wel werkt denk ik dat het aan de scrollbar ligt. De gesuggereerde andere manieren van meten hadden ook geen zin. (misschien ligt de fout dan toch bij mij :))
mmz, ik meende me te herinneren dat Moz nooit document.body.clientWidth ondersteunde, nu dus wel :)
Anyway blijft mijn opmerking van kracht: pas na het renderen van de body geeft dit de juiste breedte (minus scrollbar dus) terug - in elk geval in Mozilla.

Intentionally left blank

Pagina: 1