2011-12-12 3 views
2

images/flip_images/폴더에서 임의의 이미지를 가져 오는 이미지 갤러리가 있습니다. 파일 이름은 숫자로 다음 .jpg입니다 (예 :. 0.jpg, 1.jpg 등 14 가지 이미지 중에서 선택할 수 있으며 0 ~ 13 개의 이미지가 있습니다. 이미지가 14 개 뿐이므로 한 번에 4 개씩 페이지가 필요하기 때문에 약간 반복됩니다. 피하고 싶다. 임의의 이미지 파일 이름을 생성하고 변수를 JQuery .flip() 명령에 전달하기 위해 Javascript를 사용하고 있습니다.Javascript/JQuery 무작위 이미지 반복 문제

아래 코드에서 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); 

답변

1

이것은 do..while

do { 

    //something 

}while(...){ 

    //something else 

}; 

의 적절한 형태는 다음과 같이 그것을 시도 하지입니다 : 여기에 코드입니다

do { 
    //something 
} 
while(...); 
+0

감사, 그것을했다 :) –

+0

@ 기꺼이 도와 준 PhilFaceplantYoung :-D – Neal