7

我正在开发一个 html5 应用程序,我希望在 8 秒后写入随机位置,如果你赢了或没有赢一秒钟,它会写,然后它会从创建一个新的随机开始,我已经尝试过 for 但它似乎没有做任何事情,如果我写 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 回答