2017-05-03 5 views
0

, wie setzen Sie diese mit Onclick einer Taste für setIntervalWie clearInterval() zur Verwendung von Verschluss

function MakeCounter(){ 
    var count = 0; 
    setInterval (countIt, 1000) 
     function countIt(){ 
      count++; 
      document.getElementById('demo').innerHTML = count; // result div 
     } 
} 
MakeCounter(); 
+1

Sie können nicht aufhören (clear) es, wenn Sie nicht den Rückgabewert 'var myInterval = setInterval (...)' speichern und dann später 'clearInterval (myInterval)' ' – devnull69

Antwort

1
var myVar = setInterval(function(){ myTimer() }, 1000); 

function myTimer() { 
    var d = new Date(); 
    var t = d.toLocaleTimeString(); 
    document.getElementById("demo").innerHTML = t; 
} 

function myStopFunction() { 
    clearInterval(myVar); 
} 
+1

setInterval (meinTimer, 1000); ' – Cerbrus

1

erklären einige Global Variable stoppen dann mit clearInterval(start)

Demo Snippet klicken:

var start ; 
 
function MakeCounter(){ 
 
    var count = 0; 
 
    start = setInterval (countIt, 1000) 
 
     function countIt(){ 
 
      count++; 
 
      document.getElementById('demo').innerHTML = count; // result div 
 
     } 
 
} 
 
MakeCounter();
<p id="demo"></p> 
 
<button onclick="clearInterval(start)">stop</button>

+0

Ich denke, wir sollten auch überprüfen, dass' start' nicht undefiniert ist, bevor 'clearInterval' darauf aufgerufen wird. –

+0

@MohitBhardwaj Es ist bereits am Dokument bereit. Dann, warum überprüfen Sie seine undefined vor dem Aufruf von 'clearinterval' – prasanth

+0

Oh ja du hast Recht. In diesem Fall gibt es einen Fehler. Es tut uns leid. –

1

Sie können die Schaltfläche innerhalb der Funktion erstellen und einen Evel-Listener zum Stoppen des Intervalls hinzufügen.

function MakeCounter() { 
 
    function countIt() { 
 
     count++; 
 
     document.getElementById('demo').innerHTML = count; 
 
    } 
 

 
    var count = 0, 
 
     interval = setInterval(countIt, 1000), 
 
     button = document.createElement('button'); 
 

 
    button.appendChild(document.createTextNode('stop')); 
 
    button.id = 'stop'; 
 
    document.body.appendChild(button); 
 
    document.getElementById('stop').addEventListener('click', function() { 
 
     clearInterval(interval); 
 
    }, false); 
 
} 
 

 
MakeCounter();
<div id="demo">0</div>