2016-09-07 7 views
0

ボタンが2つあります。最初のアラームは、3秒後に3秒後に別のアラームが表示されます。 2番目のボタンは、setTimeout機能を一時停止できなければなりません。jQueryを使用した一時停止タイムアウト機能

最初のアラートが表示され、「一時停止」をクリックすると、2番目のアラートが表示されません。私は解決策に近いと知っていますが、それでも機能しません。私のコードは次のとおりです。あなたがあなたのsetTimeout()通話への参照を格納し、必要なときにそれらの上にclearTimeout()を呼び出す必要があり、これを達成するために

<!DOCTYPE html> 
<html> 
<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
    <script> 
     $(document).ready(function() { 
      $("#start").click(function() { 
       setTimeout(myFunction, 3000); 
       setTimeout(myFunction, 6000); 
      }); 
      $("#stop").click(function() { 
       $("myFunction").stop(); 
      }); 
     }); 

     function myFunction() { 
      alert('Hello'); 
     } 
    </script> 
</head> 
<body> 
    <p> 
     <button id="start">Start</button> 
     <button id="stop">Pause</button> 
    </p> 
</body> 
</html> 
+0

これはできません。 – evolutionxbox

+0

私は一時停止機能を必要としますが、停止機能は必要ありません.Javascriptでこれを行うことができます。 –

答えて

2

。試してみてください:

$(document).ready(function() { 
    var timers = []; 

    $("#start").click(function(){ 
     timers.push(setTimeout(myFunction, 3000)); 
     timers.push(setTimeout(myFunction, 6000)); 
    }); 

    $("#stop").click(function(){ 
     timers.forEach(function(timer) { 
      clearTimeout(timer); 
     }); 
    }); 
}); 

function myFunction() { 
    console.log('Hello'); // note: use console.log to debug, especially with async/blocking functions 
} 
+0

よくこの実際の停止を行います。機能はありますが、一時停止する必要があります。 –

+1

タイムアウトを一時停止することはできません。何かできることではありません... – evolutionxbox

+0

こんにちはevolutiobox、何ができるのかお手伝いできますか? –

-1

これを行うには、Cookieを使用して確認することをおすすめします。

これは私がこれを行う方法は以下のようになります

 
1. Before starting alert check if there is a cookie named for example "some_cookie" and it's value; 
2. When you click on "pause" it stores value "1" in to "some_cookie"; 
3. If value is "0" than run; 

簡単。ちょうどあなたのコードを書くために忙しい。あなたがそれを必要とするならば、教えてください。私は書くつもりです。

+0

で利用可能なタイマーでポーズ/レジューム機能を動作させる唯一の方法ですが、これは私がfユーザーはクッキーを有効にしません、それは動作しませんか? –

+1

なぜ変数を使用するときにCookieを使用するのですか? – evolutionxbox

+1

あなたは正しいです。変数は同じ仕事をすることができます。昨日私はクッキーに入っていた。 :) –

関連する問題