ArjanvanRijs
Gebruiker
- Lid geworden
- 9 mrt 2016
- Berichten
- 26
Hallo allemaal,
ik ben nieuw hier en bezig met het leren van javascript. Ik heb al het nodige geschreven en krijg meestal de zaken wel werkend, maar in dit geval snap ik er even niets meer van. Ik probeer een functie te schrijven die een element (<p>, <img> enz...) opent in een gegeven aantal seconden. Ja, ik weet dat JQuery ook dit soort functionaliteit biedt, maar wil het graag zelf snappen en leren hoe het werkt.
In ieder geval heb ik heel wat zitten lezen op fora en in mijn boeken en ben er achter gekomen dat het verstandig is om een aparte timer te maken, die vervolgens door de functies die een timer nodig hebben wordt gechecked. Tot zover geen probleem. Ik heb een timer die elke 20 ms een teller ophoogt met 1. Als ik deze timer bij het initialiseren activeer en vervolgens bij click-events de waarde opvraag krijg ik die gewoon. Maar... zodra ik de waarde opvraag in een loop (of een functie) blijft de waarde vanaf dat moment gelijk. Dit lijdt dus tot oneindige loops en vreemde foutmeldingen.
Weet iemand wat ik fout doe? Hieronder de definitie van de timer:
[js]
function Timer() {
if(typeof Timer.timerwaarde == 'undefined') {
Timer.timerwaarde = 0;
} else {
Timer.timerwaarde++;
}
setTimeout(Timer, 20);
}
[/js]
binnen de functie is het volgende opgenomen:
[js]
if(typeof Timer.timerwaarde != 'undefined') {
var timer = Timer.timerwaarde;
} else {
Timer();
var timer = Timer.Timerwaarde;
}
[/js]
Ik hoop dat iemand me kan helpen.
Met vriendelijke groet,
Arjan van Rijs.
ik ben nieuw hier en bezig met het leren van javascript. Ik heb al het nodige geschreven en krijg meestal de zaken wel werkend, maar in dit geval snap ik er even niets meer van. Ik probeer een functie te schrijven die een element (<p>, <img> enz...) opent in een gegeven aantal seconden. Ja, ik weet dat JQuery ook dit soort functionaliteit biedt, maar wil het graag zelf snappen en leren hoe het werkt.
In ieder geval heb ik heel wat zitten lezen op fora en in mijn boeken en ben er achter gekomen dat het verstandig is om een aparte timer te maken, die vervolgens door de functies die een timer nodig hebben wordt gechecked. Tot zover geen probleem. Ik heb een timer die elke 20 ms een teller ophoogt met 1. Als ik deze timer bij het initialiseren activeer en vervolgens bij click-events de waarde opvraag krijg ik die gewoon. Maar... zodra ik de waarde opvraag in een loop (of een functie) blijft de waarde vanaf dat moment gelijk. Dit lijdt dus tot oneindige loops en vreemde foutmeldingen.
Weet iemand wat ik fout doe? Hieronder de definitie van de timer:
[js]
function Timer() {
if(typeof Timer.timerwaarde == 'undefined') {
Timer.timerwaarde = 0;
} else {
Timer.timerwaarde++;
}
setTimeout(Timer, 20);
}
[/js]
binnen de functie is het volgende opgenomen:
[js]
if(typeof Timer.timerwaarde != 'undefined') {
var timer = Timer.timerwaarde;
} else {
Timer();
var timer = Timer.Timerwaarde;
}
[/js]
Ik hoop dat iemand me kan helpen.
Met vriendelijke groet,
Arjan van Rijs.
Laatst bewerkt: