2012-11-27 18 views
5

私はhtml5アプリケーションを開発しています。私はあなたが1秒間勝利したかどうかを書いたランダムな場所を書いてから8秒後にそれを望みます。そして、新しいランダムを作ることから始まります。しかしdo'esntは何かを作るように思えますし、ブラウザがクラッシュしている間(真)に書き込むとします。9秒ごとにジャバスクリプトループ?

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

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); 
    } 
}); 

答えて

20

あなたははい、それを修正する方法はあり

clearInterval(time); 
+4

インターバル識別子に「time」と名前を付けた以外は、良い答えです。 ...うーん、そしてw3schoolsはむしろ参考になりません。それにもかかわらず+1。 – CaffGeek

-1

ことで、これをクリアすることができ、この目的の

Reference

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

のためのsetIntervalを使用することができます。

タイムアウトの機能を行います。

function setTimeoutAgain() 
{ 
    var t = setTimeout(function() 
    { 
     setTimeoutAgain(); 
    },8000); 
} 
+0

私はどのように私のコード(私はちょうど初心者のjavascriptで)に貼り付けますか? –

3

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

(function loop() { 
    setTimeout(function() { 
    // execute script 
    loop() 
    }, 9000); 
}()); 
関連する問題