我不明白这个错误。

有我的简单代码:

var refreshInterval;

function refreshAuto()
{
    if($("#refresh-select").val() == "off")
    {
        clearInterval(refreshInterval);
        console.log("I'm here !");
    }
    else
    {
        refreshInterval = setInterval("console.log('bip')", $("#refresh-select").val());
    }
}


我选择带有下拉列表的计时器。
该代码的工作方式除外(清除计时器的参数,我已经测试过)清除间隔的部分。没有清除间隔。当我选择“关闭”时,控制台会告诉我“我在这里”,但不会停下来“踩”一下。任何想法?

谢谢。

最佳答案

如果您多次按开按钮,可能会发生。原因是即使新间隔的引用替换了第一个间隔,也不会清除第一个间隔。

尝试这个,

var refreshInterval;

function refreshAuto()
{
    clearInterval(refreshInterval);
    if($("#refresh-select").val() == "off")
    {
        console.log("I'm here !");
    }
    else
    {
        refreshInterval = setInterval("console.log('bip')", $("#refresh-select").val());
    }
}

关于javascript - 计时器:clearInterval()不起作用(js),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27361680/

10-12 15:58