jQuery - clearInterval 似乎不起作用
jQuery - clearInterval seems not to work
长话短说:如果间隔计数超过 5,代码应清除间隔,停止每秒执行该函数。但这似乎不起作用。
HTML
<div id='feedback'></div>
JavaScript / jQuery
window.intervalcount = 0;
var interval = setInterval(function () {
intervalcount += 1;
$("#feedback").text(intervalcount);
}, 1000);
if(intervalcount > 5) {
clearInterval(interval);
}
但我似乎找不到问题...
你需要 if
回调本身,比如
window.intervalcount = 0;
var interval = setInterval(function () {
intervalcount += 1;
$("#feedback").text(intervalcount);
if(intervalcount > 5) {
clearInterval(interval);
}
}, 1000);
这是因为您的代码不会按顺序执行。相反,if
将在任何间隔执行之前执行,因为它们在 之后执行
您试图在设置后立即执行 clearInterval()
。这发生在之前任何秒已经过去。首先你设置间隔,然后你检查是否有任何已经过去(他们没有)然后五秒后它 将 是时间来清除间隔 - 但到那时它已经 运行.
也许你打算在每次执行期间检查?
var interval = setInterval(function () {
if(intervalcount > 5) {
clearInterval(interval);
} else {
intervalcount += 1;
$("#feedback").text(intervalcount);
}
}, 1000);
所以目前,您的代码将运行像这样的命令:
window.intervalcount = 0;
// Interval is defined here
var interval = setInterval(function () {
intervalcount += 1;
$("#feedback").text(intervalcount);
}, 1000);
// will be 0 still
if(intervalcount > 5) {
clearInterval(interval);
}
// 1 second after the interval is defined:
intervalcount += 1; // now equals 1
$("#feedback").text(intervalcount);
// 2 seconds after defined:
intervalcount += 1; // now equals 2
$("#feedback").text(intervalcount);
// etc, forever
放置:
if(intervalcount > 5) {
clearInterval(interval);
}
在间隔的函数内将执行您想要的行为。
长话短说:如果间隔计数超过 5,代码应清除间隔,停止每秒执行该函数。但这似乎不起作用。
HTML
<div id='feedback'></div>
JavaScript / jQuery
window.intervalcount = 0;
var interval = setInterval(function () {
intervalcount += 1;
$("#feedback").text(intervalcount);
}, 1000);
if(intervalcount > 5) {
clearInterval(interval);
}
但我似乎找不到问题...
你需要 if
回调本身,比如
window.intervalcount = 0;
var interval = setInterval(function () {
intervalcount += 1;
$("#feedback").text(intervalcount);
if(intervalcount > 5) {
clearInterval(interval);
}
}, 1000);
这是因为您的代码不会按顺序执行。相反,if
将在任何间隔执行之前执行,因为它们在 之后执行
您试图在设置后立即执行 clearInterval()
。这发生在之前任何秒已经过去。首先你设置间隔,然后你检查是否有任何已经过去(他们没有)然后五秒后它 将 是时间来清除间隔 - 但到那时它已经 运行.
也许你打算在每次执行期间检查?
var interval = setInterval(function () {
if(intervalcount > 5) {
clearInterval(interval);
} else {
intervalcount += 1;
$("#feedback").text(intervalcount);
}
}, 1000);
所以目前,您的代码将运行像这样的命令:
window.intervalcount = 0;
// Interval is defined here
var interval = setInterval(function () {
intervalcount += 1;
$("#feedback").text(intervalcount);
}, 1000);
// will be 0 still
if(intervalcount > 5) {
clearInterval(interval);
}
// 1 second after the interval is defined:
intervalcount += 1; // now equals 1
$("#feedback").text(intervalcount);
// 2 seconds after defined:
intervalcount += 1; // now equals 2
$("#feedback").text(intervalcount);
// etc, forever
放置:
if(intervalcount > 5) {
clearInterval(interval);
}
在间隔的函数内将执行您想要的行为。