7

私はhtml5アプリを開発していますが、ランダムな場所を8秒間書いた後、1秒間勝ったかどうかを書き込んでから、新しいランダムを作成することから始めたいと思っています。 do'esnt は何もしていないようで、while(true) と書くとブラウザがクラッシュします。

それを修正する方法はありますか?

jQuery(document).ready(function(){
    ImageClicked = false;
    for (var i=0;i<8;i++){
        var XYScore = 0;
        var RandomPlace=Math.floor((Math.random()*10)+1);
        var Place;
        var WantedXPr;
        var WantedYPr;

        switch(RandomPlace){
            case 1:
                Place="Berlin";
                WantedYPr=790;
                WantedXPr=4300;
                break;
            case 2:
                Place="New York";
                WantedYPr=1061;
                WantedXPr=2345;
                break;
            case 3:
                Place="barcelona";
                WantedYPr=1049;
                WantedXPr=4046;
                break;
            case 4:
                Place="Johannesburg";
                WantedYPr=2546;
                WantedXPr=4618;
                break;
            case 5:
                Place="shanghai";
                WantedYPr=1272;
                WantedXPr=6664;
                break;
            case 6:
                Place="Moskau";
                WantedYPr=732;
                WantedXPr=4800;
                break;
            case 7:
                Place="kahir";
                WantedYPr=4690;
                WantedXPr=1310;
                break;
            case 8:
                Place="Delhi";
                WantedYPr=1323;
                WantedXPr=5707;
                break;
            case 9:
                Place="rio de genero";
                WantedYPr=2478;
                WantedXPr=3050;
                break;
            case 10:
                Place="Tokyo";
                WantedYPr=1180;
                WantedXPr=7102;
                break;
        }

        setTimeout(function(){
            if (ImageClicked==false){
                $('#HeaderAfterWrite').html(", all the people were killed");
                $('#HeaderWrite').html("No one helped ");}
            else if(XYScore>69)
                $('#HeaderWrite').html("Youv'e succesful recover the city ");
            else if(XYScore>39)
                $('#HeaderWrite').html("The Parvars are not all of ");
            else {$('#HeaderAfterWrite').html("is full destroyed now!");
                $('#HeaderWrite').html(" ");}
        }, 8000);
        $('#Place').html(Place);
    }
});
4

3 に答える 3

27

この目的のために setInterval を使用できます

参照

time=setInterval(function(){
//your code
},9000);

あなたはこれをクリアすることができます

clearInterval(time);
于 2012-11-27T14:11:42.237 に答える
7

これはよりエレガントです。

(function loop() {
  setTimeout(function () {
    // execute script
    loop()
  }, 9000);
}());
于 2013-08-23T00:40:38.697 に答える
1

はい、それを修正する方法があります。

タイムアウトの関数を作成します。

function setTimeoutAgain()
{
   var t = setTimeout(function()
   {
        setTimeoutAgain();
   },8000);
} 
于 2012-11-27T14:12:34.420 に答える