Probleem met banner rolatie

Status
Niet open voor verdere reacties.

nietie

Gebruiker
Lid geworden
7 feb 2008
Berichten
96
Hallo,

Had een script gevonden voor een banner rolatie, en hij werkt top :thumb:
Alleen ga ik het op meerdere pagina's gebruiken dus wil ik het in een extern bestandje zetten. En hier ging het mis.

Hier is een gedeelte van de html code:
Code:
<body>

<script language="JavaScript" src="rotatie.js"></script>

<div id="splash">  

<img src="" name="Rotating" id="Rotating1" width=458 height=92>
  
</div>

Het js script heb ik in rotatie.js geplaatst:
[JS]<script language="JavaScript">
var ImageArr1 = new Array("images/a8.gif","images/a10.jpg","images/donor.jpg");
var ImageHolder1 = document.getElementById('Rotating1');



function RotateImages(whichHolder,Start)
{
var a = eval("ImageArr"+whichHolder);
var b = eval("ImageHolder"+whichHolder);
if(Start>=a.length)
Start=0;
b.src = a[Start];
window.setTimeout("RotateImages("+whichHolder+","+(Start+1)+")",2000);
}

RotateImages(1,0);
RotateImages(2,0);

</script>[/JS]

ziet iemand de fout? Alvast bedankt!
 
Heb je <script language="JavaScript"> ook in het .js bestanden bestand staan? Dat is daar namelijk niet nodig, dat zorgt voor een syntax fout en daardoor werkt de functie dan niet. ;)
 
Je probleem is waarschijnlijk precies datgene wat ThePope zegt.

Echter is er nog een stukje voor verbetering vatbaar.

Je gebruikt:

[JS]
var ImageHolder1 = document.getElementById('Rotating1');
var b = eval("ImageHolder"+whichHolder);
b.src= a[Start];
[/JS]

Veel makkelijker en netter is:

[JS]
document.getElementById('Rotating' + whichHolder).src = a[Start];
[/JS]
 
Heb je <script language="JavaScript"> ook in het .js bestanden bestand staan? Dat is daar namelijk niet nodig, dat zorgt voor een syntax fout en daardoor werkt de functie dan niet. ;)

Bedankt voor je reactie

Heb de code nu zo:
[JS]var ImageArr1 = new Array("images/a8.gif","images/a10.jpg","images/donor.jpg");
var ImageHolder1 = document.getElementById('Rotating1');

function RotateImages(whichHolder,Start)
{
var a = eval("ImageArr"+whichHolder);
var b = eval("ImageHolder"+whichHolder);
if(Start>=a.length)
Start=0;
b.src = a[Start];
window.setTimeout("RotateImages("+whichHolder+","+(Start+1)+")",2000);
}

RotateImages(1,0);
RotateImages(2,0);[/JS]

Maar het blijkt nog niet te werken :(
 
dat komt omdat je je script (met de getElementById() code) BOVEN je eigenlijke tag aanroept. Ofwel, die bestaat dan nog niet.

Probeer deze volgorde:
HTML:
<body>



<div id="splash">  

<img src="" name="Rotating" id="Rotating1" width=458 height=92>
  <!-- eerst dus html, dan pas je js -->

<script language="JavaScript" src="rotatie.js"></script>
</div>
 
dat komt omdat je je script (met de getElementById() code) BOVEN je eigenlijke tag aanroept. Ofwel, die bestaat dan nog niet.

Probeer deze volgorde:
HTML:
<body>



<div id="splash">  

<img src="" name="Rotating" id="Rotating1" width=458 height=92>
  <!-- eerst dus html, dan pas je js -->

<script language="JavaScript" src="rotatie.js"></script>
</div>

Bedankt het werkt nu!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan