質問

Suppose I have a few buttons and when they are clicked they trigger certain setInterval, but when I clicked on different button the previous setInterval doesn't clear or it say it is undefined.

example:

$("#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);      
});

can anyone help please?

much appreciated

役に立ちましたか?

解決

The scope of the onehour and twohour functions is the function in which they're declared, so they're not visible from the other callback.

You must declare your variables in a common scope. Do this :

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);      
});

他のヒント

Variable onehour and twohour are local to the function. If you declare them globally, it should work fine.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top