我有一个图片库,从文件夹images / flip_images /中提取随机图像。这些文件的名称是一个数字,然后是.jpg,例如0.jpg,1.jpg等。有14个图像可以选择,标记为0 - 13.由于只有14个图像,页面一次需要4个,所以有很多重复,我会喜欢避免。我使用Javascript生成随机图像文件名并将变量传递给JQuery .flip()命令。
我尝试在下面的代码中使用do while循环来更改全局变量,将全局变量与其他变量进行比较,如果首先选择的数字已经被使用,则选择另一个数字。但是,我似乎不能让它发挥作用。这是一个范围问题还是我在代码中犯了一个简单的错误?这是代码:
var randomNumber0= 0;
var randomNumber1= 1;
var randomNumber2= 2;
var randomNumber3= 3;
var refreshId0 = setInterval(function(){
var $this = $(this);
do {
randomNumber0=Math.floor(Math.random()*14)
}while(randomNumber0 == randomNumber1 || randomNumber0 == randomNumber2 || randomNumber0 == randomNumber3){
randomNumber0=Math.floor(Math.random()*14)
};
$("#flipboxa").flip({
direction: 'lr',
color: "transparent",
content: '<img src="images/flip_images/'+randomNumber0+'.jpg" width="120" height="275" alt="alt tag here" />',
});
return false;
}, 5000);
var refreshId1 = setInterval(function(){
var $this = $(this);
do {
randomNumber1=Math.floor(Math.random()*14)
}while(randomNumber1 == randomNumber0 || randomNumber1 == randomNumber2 || randomNumber1 == randomNumber3){
randomNumber1=Math.floor(Math.random()*14)
};
$("#flipboxb").flip({
direction: 'rl',
color: "transparent",
content: '<img src="images/flip_images/'+randomNumber1+'.jpg" width="120" height="275" alt="alt tag here" />',
});
return false;
}, 6000);
var refreshId2 = setInterval(function(){
var $this = $(this);
do {
randomNumber2=Math.floor(Math.random()*14)
}while(randomNumber2 == randomNumber0 || randomNumber2 == randomNumber1 || randomNumber2 == randomNumber3){
randomNumber2=Math.floor(Math.random()*14)
};
$("#flipboxc").flip({
direction: 'lr',
color: "transparent",
content: '<img src="images/flip_images/'+randomNumber2+'.jpg" width="120" height="275" alt="alt tag here" />',
});
return false;
}, 7000);
var refreshId3 = setInterval(function(){
var $this = $(this);
do {
randomNumber3=Math.floor(Math.random()*14)
}while(randomNumber3 == randomNumber0 || randomNumber3 == randomNumber1 || randomNumber3 == randomNumber2){
randomNumber3=Math.floor(Math.random()*14)
};
$("#flipboxd").flip({
direction: 'rl',
color: "transparent",
content: '<img src="images/flip_images/'+randomNumber3+'.jpg" width="120" height="275" alt="alt tag here" />',
});
return false;
}, 8000);
答案 0 :(得分:1)
<{1}}
的正确形式do..while
试试这样:
do {
//something
}while(...){
//something else
};