Hallo allemaal,

Ik gebruik een javascript voor countdown timers op een pagina, nu heb ik op deze pagina 5 timers.
Als ik het script vaker gebruik werkt 1 timer en de rest blijven leeg.
Ik heb via google gevonden dat dit te maken heeft met de onload functie maar ik krijg het niet voor elkaar deze voor elk script te laten werken.

Dit is het script:

 <script type="text/javascript">
window.onload = function() {
    setInterval(tick,1000); tick();;
    setInterval(tick,1000); tick();;
};
</script>
            <script type="text/javascript">
var curTime = <?php echo $time; ?>;
var endTime = <?php echo $timeleft3; ?>; // ditto

function tick( )
{
var secs = endTime - curTime;
var days = Math.floor( secs / 86400 ); // 86400 seconds in a day
secs %= 86400;
var hrs = Math.floor( secs/ 3600 );
secs %= 3600;
var mins = Math.floor( secs / 60 );
secs %= 60;
document.getElementById("ticker1").innerHTML = 
mins + " minutes, " + secs + " seconds";
++curTime; 
}


</script>
<body onLoad="setInterval(tick,1000); tick();">


Hoop dat iemand me kan helpen ben er al weken mee aan het kloten.
Het heeft niet zozeer met een onLoad-event te maken, maar met het feit dat je in je functie maar naar 1 element verwijst (ticker1). Als je 5 timers maakt, moeten ze allemaal een ander id hebben. Je timerscript moet vervolgens voor elke timer de nieuwe waarde bepalen en naar het juiste timer-element schrijven. Nu schrijven alle aanroepen van je timerscript naar dezelfde timer. Dat verklaart waarom er in die andere 4 timers niets gebeurt.
De andere hebben een andere naam ticker 2,3,4 en 5.
Maar daar doe je niks mee.
Kijk eens wat dit doet:[code lang="js"]
<script type="text/javascript">
window.onload = function() {
setInterval(tick,1000); tick();;
setInterval(tick,1000); tick();;
};
[/code]
Als je 5 verschillende timers wilt aanroepen, moet je ze ook apart aanroepen
Tweede script ziet er zo uit:

         <script type="text/javascript">
window.onload = function() {
    setInterval(tick,1000); tick();;
    setInterval(tick,1000); tick();;
};
</script>
            <script type="text/javascript">
var curTime = <?php echo $time; ?>;
var endTime = <?php echo $timeleft2; ?>; // ditto

function tick( )
{
var secs = endTime - curTime;
var days = Math.floor( secs / 86400 ); // 86400 seconds in a day
secs %= 86400;
var hrs = Math.floor( secs/ 3600 );
secs %= 3600;
var mins = Math.floor( secs / 60 );
secs %= 60;
document.getElementById("ticker2").innerHTML = 
mins + " minutes, " + secs + " seconds";
++curTime; 
}
</script>


Wat moet ik hier dan veranderen ik ben echt een n00b met javascript.
Je gebruikt 2 keer (en waarschijnlijk dus uiteindelijk 5 keer) dezelfde functienaam (tick()). Dat gaat niet werken; een functienaam moet uniek zijn.

In jouw geval bevatten de functies (grotendeels) dezelfde code en zou je kunnen overwegen datgene wat verandert (het id van de timer) mee te geven als parameter.
Heb de functie nu tick2 ect genoemd, probleem is er nog steeds.

Reageren