单击按钮时,ClearInterval未定义

med*_*dzi 0 javascript jquery setinterval clearinterval

假设我有几个按钮,当它们被点击时它们会触发某个setInterval,但是当我点击不同的按钮时,前一个setInterval没有清除或它说它是未定义的.

例:

$("#button1").click(function () {

        var url = "xxx";
        var min = "yyy";

        getGraphCredentials3(min,url);

        var onehour = setInterval(function () {
                getGraphCredentials3(min,url);
        }, 5000);


        clearInterval(twohour);  

});


$("#button2").click(function () {

        var url = "zzz";
        var min = "uuu";

        getGraphCredentials3(min,url);

        var twohour = setInterval(function () {
                getGraphCredentials3(min,url);
        }, 5000);


        clearInterval(onehour);      
});
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

非常感激

Den*_*ret 5

onehour和twohour函数的范围是它们被声明的函数,因此它们在其他回调中是不可见的.

您必须在常见范围内声明变量.做这个 :

var onehour, twohour;
$("#button1").click(function () {

        var url = "xxx";
        var min = "yyy";

        getGraphCredentials3(min,url);

        onehour = setInterval(function () {
                getGraphCredentials3(min,url);
        }, 5000);


        clearInterval(twohour);  

});


$("#button2").click(function () {

        var url = "zzz";
        var min = "uuu";

        getGraphCredentials3(min,url);

        twohour = setInterval(function () {
                getGraphCredentials3(min,url);
        }, 5000);


        clearInterval(onehour);      
});
Run Code Online (Sandbox Code Playgroud)