clearInterval()不起作用?

时间:2014-03-18 10:03:54

标签: javascript

function myFunction(interval) {

    var intervalID = window.setInterval(function () {
        getdetails();
        $('.View').load('alert.php').fadeIn("slow");
    }, 3000);

    if (interval == 1) {
        window.clearInterval(intervalID);
    }
}

当我使用参数1调用myFunction时,clearInterval()不清除setInterval()。当我使用参数1调用myFunction时,我希望setInterval()停止执行。

1 个答案:

答案 0 :(得分:0)

问题是每次调用该函数时都要创建一个新的计时器。修改如下:

var intervalID = 0;
function myFunction(interval){
    if(interval == 1) {
        if(intervalID != 0) {
            window.clearInterval(intervalID);
            intervalID = 0;
        }
    }
    else if(intervalID == 0) { // create only if not existing
        intervalID = window.setInterval(function () {
            ...
        });
    }
}

现在,你打电话给它的第一次,它会创建计时器。之后当你用1作为参数调用它时,它将清除计时器。