几次迭代后的javascript幻灯片错误

时间:2013-07-19 08:30:23

标签: javascript slideshow

我在javascript中创建了自己的图片滚动,在3-4照片更改后,我的脚本崩溃了。我不知道为什么!如果有人可以帮助我? 这些图片是从两个不同的文件中随机拍摄的,我将它们放在一个数组上

这是我的代码:

 <div class="corpshaut"> 
<a href="" id="lien_banniere0" border="0" class="image-bandeau"><img src="" id="banniere0" height="150" border="0" width="150" /></a> 
<a href="" id="lien_banniere1" border="0" class="image-bandeau"><img src="" id="banniere1" height="150" border="0" width="150"/></a> 
<a href="" id="lien_banniere2" border="0" class="image-bandeau"><img src="" id="banniere2" height="150" border="0" width="150"/></a> 
<a href="" id="lien_banniere3" border="0" class="image-bandeau"><img src="" id="banniere3" height="150" border="0" width="150"/></a> 
<a href="" id="lien_banniere4" border="0" class="image-bandeau"><img src="" id="banniere4" height="150" border="0" width="150"/></a> 
<script> 
$(document).ready(function(){ 
boucle(); 
}); 
function boucle(){ 
/*Variablde de parametre*/ 
var nbimagetotal = 5; 
var nbimagesuivie = 1; 
var nbimagedossier = 11; 
var repertoire = 'image3/('; 
var lien = 'www.lien.fr'; 
/*-------------------------*/ 
/*Variablde*/ 
var stock = new Array(); 
var index; 
var occu; 
var nbimage = Math.floor((Math.random()*nbimagetotal)+1); 
var aleatoire; 
/*-------------------------*/ 
while (nbimagesuivie <= nbimagetotal){ 
occu=0; 
for (i=0; i<nbimage; i++){ 
aleatoire = repertoire + Math.floor((Math.random()*nbimagedossier)+1) + ').gif'; 
/*Boucle FOR permettant de verifier si l'image est déja dans le tableau*/ 
for (j =0; j<i;j++){ 
index= stock[j].indexOf(aleatoire); 
if (index != -1) { 
occu=1; 
} 
} 
if (occu==0) { 
stock[i] = new Array(); 
stock[i][0]= aleatoire; 
stock[i][1]=lien; 
nbimagesuivie = nbimagesuivie +1; 
} 
else{ 
--i; 
} 
} 
if(nbimage < 5){ 
occu=0; 
var repertoire2 = 'image2/'; 
var nbimagedossier2 = 11; 
var nbimage2 = nbimagetotal - nbimage; 
var lien2 = 'www.lien2.fr' ; 
for (i=nbimage; i<nbimagetotal; i++){ 
aleatoire = repertoire2 + Math.floor((Math.random()*nbimagedossier)+1) + '.jpg'; 
/*Boucle FOR permettant de verifier si l'image est déja dans le tableau*/ 
for (j =0; j<i;j++){ 
index= stock[j].indexOf(aleatoire); 
if (index != -1) { 
occu=1; 
} 
} 
if (occu==0) { 
stock[i] = new Array(); 
stock[i][0]= aleatoire; 
stock[i][1]=lien2; 
nbimagesuivie = nbimagesuivie +1; 
} 
else{ 
--i; 
} 
}   
} 
} 
for (i=0;i<nbimagetotal;i++){ 
$('#lien_banniere'+i).attr('href', stock[i][1]); 
$('#banniere'+i).attr('src',stock[i][0] ); 
} 
setTimeout(function(){boucle()}, 5000); 
} 
</script>

thx求助

1 个答案:

答案 0 :(得分:0)

你确实有一个无限循环,因为如果使用= = 1你正在做一个--i,那么使用for你将会做一个i ++,循环将以这种方式继续而不会破坏。