假设我有几个按钮,当它们被点击时会触发某个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);
});
任何人都可以帮忙吗?
非常感谢
答案 0 :(得分: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);
});
答案 1 :(得分:1)
变量onehour和twohour是函数的本地。如果你在全局声明它们,它应该可以正常工作。