javascript - Clearing an interval -
i'm studying javascript , i'm having difficulties , understanding why piece of code (see below) edited doesn't work. purpose pretty simple - want create button stops , runs time again. printed text sure code enters 'if' , 'else' statements, clearinterval doesn't seem work. appreciated!
(*the original code belongs w3schools, have added "loop function" see if work, , doesn't ;( )
this code:
<!doctype html> <html> <body> <p>a script on page starts clock:</p> <p id="demo"></p> <button onclick="checktime()">stop time/start time again</button> <p id="test"></p> <script> var mycounter = 0; var myvar = setinterval(mytimer ,1000); function mytimer() { var d = new date(); document.getelementbyid("demo").innerhtml = d.tolocaletimestring(); } function checktime() { mycounter += 1; if (mycounter == 1) { clearinterval(myvar); document.getelementbyid("test").innerhtml = "ok"; } else { var myvar = setinterval(mytimer ,1000); mycounter = 0; document.getelementbyid("test").innerhtml = "clicked again"; } } </script> </body> </html> thanks!
just glanced @ code quickly, notice redeclaring myvar variable, variable being cleared when call clearinterval due funky feature in javascript called hoisting.
try following...
<script> var mycounter = 0; var myvar = setinterval(mytimer ,1000); function mytimer() { var d = new date(); document.getelementbyid("demo").innerhtml = d.tolocaletimestring(); } function checktime() { mycounter += 1; if (mycounter == 1) { clearinterval(myvar); document.getelementbyid("test").innerhtml = "ok"; } else { myvar = setinterval(mytimer ,1000); mycounter = 0; document.getelementbyid("test").innerhtml = "clicked again"; } } </script>
Comments
Post a Comment