现在已经在 fiddle 中玩了 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 中的“运行”以使其在单击复选框后停止,因此两次警报之间有 7 秒的时间...

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

谢谢!

最佳答案

不要在局部范围内重新定义变量

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

关于javascript - 无法使用 clearInterval 停止 setInterval,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22416114/

10-13 01:07