2014-04-18 3 views
0

그래서 시작 단추를 누른 다음 단추가 중지 단추로 변경되는이 응용 프로그램이 있습니다. 시작 버튼이 카운터를 시작하고 새로 고치고 중지 버튼이 카운터를 중지시킵니다. 그래서 여기에 문제가 내가 내가 버튼을 누를 때 카운터를 시작하도록 만들 수있는 방법에 대해 아무 생각이 없다는 것입니다startInterval 중지 및 시작

var sec = 0; 
     var seconds = 0; 
     var hundreths = 0; 

     function timer(x){ 
      return x > 9 ? x : "0" + x; 
     } 

     intervalID = setInterval(function(){ 
       seconds = timer(parseInt(sec/60, 10)); 
       hundreths = timer(++sec%60); 
       $("#time-id").val("Sekundid: "+seconds+" Sajandikud: "+hundreths); 
     }, 10); 

     function startTimer(check){ 
      sec = 0; 

     } 

     function start(){ 
      changeButton("start"); 
      startTimer(true); 
     } 

     function stop(){ 
      changeButton("stop"); 
      startTimer(false); 
      clearInterval(intervalID); 
     } 

     function changeButton(variable){ 
      if(variable === "start"){ 
       var div = document.getElementById("game"); 
       var btn2 = document.createElement("input"); btn2.id = "Stop"; btn2.type = "button"; btn2.value = "Stop"; 
       clearBox("Start"); 
       div.appendChild(btn2); 
       btn2.onclick = function(){stop()}; 
      }else if(variable === "stop"){ 
       var div = document.getElementById("game"); 
       var btn1 = document.createElement("input"); btn1.id = "Start"; btn1.type = "button"; btn1.value = "Start"; 
       clearBox("Stop"); 
       div.appendChild(btn1); 
       btn1.onclick = function(){start()}; 
      } 
     } 

     window.onload = function(){ 
      var div = document.getElementById("game"); 
      var btn1 = document.createElement("input"); btn1.id = "Start"; btn1.type = "button"; btn1.value = "Start"; 
      div.appendChild(btn1); 
      btn1.onclick = function(){start()}; 
     }; 

     function clearBox(elementID){ 
      document.getElementById(elementID).remove(); 
     } 
     <!-- Element removal code --> 
     Element.prototype.remove = function() { 
      this.parentElement.removeChild(this); 
     } 

     NodeList.prototype.remove = HTMLCollection.prototype.remove = function() { 
      for(var i = 0, len = this.length; i < len; i++) { 
       if(this[i] && this[i].parentElement) { 
        this[i].parentElement.removeChild(this[i]); 
       } 
      } 
     } 

: 여기

는 코드입니다. 왜냐하면 지금은 페이지가로드 될 때 시작됩니다. 범위 지정의 때문에

답변

1

이 시도 .. 너무 별도의 기능에 setInterval을 넣어 어렵다 :

HTML :

<button onclick='startInterval()'>Start</button> 

자바 스크립트 :

var intervalID; 
function startInterval() { 
    intervalID = setInterval(function(){ 
      seconds = timer(parseInt(sec/60, 10)); 
      hundreths = timer(++sec%60); 
      $("#time-id").val("Sekundid: "+seconds+" Sajandikud: "+hundreths); 
    }, 10); 
} 
+0

감사 alot을! 완벽하게 작동합니다. – Veske