无法使用clearInterval停止setInterval

时间:2014-03-14 21:32:39

标签: javascript jquery

现在用小提琴演奏了4个小时,无法找到解决方案......

HTML:

Real Time Data: <input type="checkbox" id="dataStream"/>

JS:

var chartInt = null;
$("#dataStream").change(function() {
    if(this.checked) {
        var chartInt = setInterval(function() { alert('checked') }, 7000);
    } else {
        clearInterval(chartInt);
        chartInt = null;
        alert('unchecked');
    }
});

注意:因为clearInterval不起作用,你需要点击jsfiddle中的“run”,让它在点击复选框后停止,你有7秒的警报......

以下是jsfiddle的链接:http://jsfiddle.net/5udtC/5966/

谢谢!

1 个答案:

答案 0 :(得分:8)

不要在本地范围内重新定义变量

var chartInt = null;
$("#dataStream").change(function() {
    if(this.checked) {
        chartInt = setInterval(function() {  // no "var" here
            alert('checked') 
        }, 7000);
    } else {
        clearInterval(chartInt);
        alert('unchecked');
    }
});