2017-07-05 18 views
-1

JavaScriptを使用して、リセットと時間間隔機能を開始するのに苦労しています。ここでは、私がこれまで取り組んできたものです:リセットして新しい時間間隔を開始する

$(document).ready(function(){ 
 
$("#start").click(function(){ 
 
var valu = $("#in").val() 
 
setInterval(function() 
 
{ 
 
console.log("hello") 
 
},1000*valu) 
 
}) 
 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="in"> 
 
<button id="start">Start</button>

問題:I入力は新しい価値とプレススタートは、古い間隔だけではなく、新しいものの作業を続けると。たとえば、1を入力してstartを押すと、コンソールは1秒ごとに出力します(良好)。ただし、10を入力すると、10秒間隔に変更するのではなく、1秒間隔を維持します。 目標:新しい値を入力すると、古い間隔関数を削除して新しい間隔を開始します。

問題を解決するお手伝いをしてもらえますか?

+1

ヒント: 'clearInterval'と' setInterval'の結果を使用してください。 –

答えて

2

$(document).ready(function(){ 
 
    $("#start").click(function(){ 
 
     var valu = $("#in").val(); 
 
     if(typeof myTimer != "undefined") { 
 
      clearInterval(myTimer); 
 
     } 
 
    
 
     window.myTimer = setInterval(function() 
 
     { 
 
      console.log("hello") 
 
     },1000*valu); 
 
    }) 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="in"> 
 
<button id="start">Start</button>

ストアもう一度関数を呼び出す次回にアクセスできるグローバル変数でごsetInterval

次に、変数が設定されていることを確認し、clearIntervalを使用してタイマーを停止します。もう一度setIntervalで新しくタイマーを開始します。

関連する問題