Het zelfde script vaker gebruiken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jordy Kooij

Jordy Kooij

07/02/2014 21:20:28
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<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.
Gewijzigd op 08/02/2014 02:11:42 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

06/05/2024 07:42:36
 
Willem vp

Willem vp

07/02/2014 22:47:47
Quote Anchor link
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.
Gewijzigd op 07/02/2014 22:48:50 door Willem vp
 
Jordy Kooij

Jordy Kooij

07/02/2014 23:15:46
Quote Anchor link
De andere hebben een andere naam ticker 2,3,4 en 5.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/02/2014 23:28:59
Quote Anchor link
Maar daar doe je niks mee.
Kijk eens wat dit doet:
Code (js)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<script type="text/javascript">
 window.onload = function() {
 setInterval(tick,1000); tick();;
 setInterval(tick,1000); tick();;
 };

Als je 5 verschillende timers wilt aanroepen, moet je ze ook apart aanroepen
 
Jordy Kooij

Jordy Kooij

07/02/2014 23:45:14
Quote Anchor link
Tweede script ziet er zo uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
         <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.
Gewijzigd op 08/02/2014 02:12:24 door Bas IJzelendoorn
 
Willem vp

Willem vp

07/02/2014 23:56:03
Quote Anchor link
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.
 
Jordy Kooij

Jordy Kooij

08/02/2014 00:02:13
Quote Anchor link
Heb de functie nu tick2 ect genoemd, probleem is er nog steeds.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.