2016-09-07 3 views
0

두 개의 버튼이 있습니다. 첫 번째 경고는 3 초 지연과 3 초 지연으로 경고를 나타냅니다. 두 번째 버튼은 setTimeout 기능을 일시 중지 할 수 있어야합니다.jQuery를 사용하여 일시 중지 시간 종료 기능()

첫 번째 경고가 표시되고 '일시 중지'를 클릭하면 두 번째 경고가 표시되지 않습니다. 솔루션에 가깝지만 여전히 작동하지 않습니다. 내 코드는 다음과 같습니다

<!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

당신이 당신의 setTimeout() 통화에 대한 참조를 저장하고 필요할 때 다음 그들에 clearTimeout()를 호출 할 필요가이를 달성하기 위해. 이것을 시도하십시오 :

$(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

가장 좋은 방법은 쿠키로 확인하는 것입니다.

 
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

변수가 수행 할 때 왜 쿠키를 사용합니까? – evolutionxbox

+1

@evolutionxbox 당신 말이 맞습니다. 변수는 동일한 작업을 수행 할 수 있습니다. 어제 쿠키에 갔었 어. :) –

관련 문제