清除间隔

时间:2016-02-08 19:41:31

标签: javascript intervals

我正在学习Javascript,我遇到了困难,并且理解为什么我编辑的一段代码(见下文)没有用。目的很简单 - 我想创建一个停止并再次运行时间的按钮。我甚至打印文字以确保我的代码进入'如果'和'其他'语句,但clearInterval似乎不起作用。非常感谢!

(*原始代码属于w3schools,我添加了"循环功能"只是为了看它是否有用,并且它没有;()

这是代码:

<!DOCTYPE html>
<html>
<body>

<p>A script on this page starts this 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>

谢谢!

2 个答案:

答案 0 :(得分:2)

从第二个var

中删除var myVar = setInterval...

第二个是作用于你的功能和&#34;覆盖&#34;第一个......

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";
    }
}

答案 1 :(得分:1)

快速浏览一下你的代码,但我注意到你正在重新声明你的function properly_add_your_scripts() { wp_register_script( 'smooth_div_scroll', get_template_directory_uri() . '/js/smoothDivScroll.js', array('jquery'), '1.0.0', true ); // True to add it in footer (recommended) wp_enqueue_script('smooth_div_scroll'); } add_action( 'wp_enqueue_scripts', 'properly_add_your_scripts' ); 变量,这是由于javascript中的一个时髦功能myVar而被清除的变量{ {3}}

尝试以下方法......

clearInterval