Ik ben bezig met een project waarbij ik 4 afbeeldingen in 2 groepen van 2 op een pagina laat weergeven, en deze door fades laat afwisselen. Dit gebeurd door het aanroepen van een functie.
De variabele "relatedVideosTimer" wordt bovenaan in de pagina gedefinieerd en zo als globale variabele gezet. De eerste keer dat ik wil dat de afbeeldingen gaan faden roep ik de functie "relatedVideosSlider('first'); aan. De afbeeldingen faden in en de setInterval gaat aan het werk.
Zoals je in de code ziet staat er op de eerste regel van de functie een alert, deze komt elke 4 seconden nu 2 keer direct achter elkaar, wat mij verteld dat de functie ook 2 keer uitgevoerd wordt. De timer loopt dan ook dubbel zo snel.
Wanneer ik wil dat de afbeeldingen stoppen met faden en verdwijnen voer ik de functie 'relatedVideosSlider('last"); aan, die er vervolgens voor zorgt dat mijn ingestelde alerts nog maar 1 keer per 4 seconden verschijnen, de timer wordt dus nog maar 1 keer uitgevoerd nu.
Betreffende deze slider komt op de verdere pagina niets aan bod, en voordat ik de functie met variabele 'first' heb aangeroepen krijg ik geen alerts te zien, een teken dat de timer nog niet loopt.
De variabele "relatedVideosTimer" wordt bovenaan in de pagina gedefinieerd en zo als globale variabele gezet. De eerste keer dat ik wil dat de afbeeldingen gaan faden roep ik de functie "relatedVideosSlider('first'); aan. De afbeeldingen faden in en de setInterval gaat aan het werk.
Zoals je in de code ziet staat er op de eerste regel van de functie een alert, deze komt elke 4 seconden nu 2 keer direct achter elkaar, wat mij verteld dat de functie ook 2 keer uitgevoerd wordt. De timer loopt dan ook dubbel zo snel.
Wanneer ik wil dat de afbeeldingen stoppen met faden en verdwijnen voer ik de functie 'relatedVideosSlider('last"); aan, die er vervolgens voor zorgt dat mijn ingestelde alerts nog maar 1 keer per 4 seconden verschijnen, de timer wordt dus nog maar 1 keer uitgevoerd nu.
Betreffende deze slider komt op de verdere pagina niets aan bod, en voordat ik de functie met variabele 'first' heb aangeroepen krijg ik geen alerts te zien, een teken dat de timer nog niet loopt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| function relatedVideosSlider(val){ alert('ping'); if(val == 'first'){ $('.videoEndInner .videoEndTop .related img:nth-child(1),.videoEndInner .videoEndTop .related img:nth-child(2)').fadeIn('normal',function(){ relatedVideosTimer = setInterval('relatedVideosSlider()',4000); }); } else if(val == 'last'){ clearInterval(relatedVideosTimer); $('.videoEndInner .videoEndTop .related img:visible').fadeOut('normal'); } else{ if($('.videoEndInner .videoEndTop .related img:nth-child(3)').is(':visible')){ $('.videoEndInner .videoEndTop .related img:visible').fadeOut('normal',function(){ $('.videoEndInner .videoEndTop .related img:nth-child(1),.videoEndInner .videoEndTop .related img:nth-child(2)').fadeIn(); }); } else{ $('.videoEndInner .videoEndTop .related img:visible').fadeOut('normal',function(){ $('.videoEndInner .videoEndTop .related img:nth-child(3),.videoEndInner .videoEndTop .related img:nth-child(4)').fadeIn(); }); } } } |