Javascript 无法清除间隔
如果计数变为3,我想终止使用Javascript 无法清除间隔,javascript,jquery,Javascript,Jquery,如果计数变为3,我想终止使用setInterval创建的间隔。 我尝试了下面的代码,但它没有在if块内调用警报。为什么?我的比较是不正确还是有别的地方不对 $(window).load(function() { var timerId = 1; timerId = window.setInterval(function() { timerId = timerId + 1; if(timerId == '3') {
setInterval
创建的间隔。
我尝试了下面的代码,但它没有在if
块内调用警报。为什么?我的比较是不正确还是有别的地方不对
$(window).load(function() {
var timerId = 1;
timerId = window.setInterval(function() {
timerId = timerId + 1;
if(timerId == '3') {
alert(timerId);
clearInterval(timerId);
}
}, 2000);
});
您正在使用相同的变量存储整数值和返回的唯一间隔ID。因此,使用不同的变量,这可能会解决您的问题
$(window).load(function() {
var timerId =1;
var intId = window.setInterval(function(){
timerId=timerId+1;
if(timerId=='3'){ alert(timerId); clearInterval(intId);}
}, 2000); });
尽量不要对所有内容都使用相同的变量
不能对计数和间隔使用相同的变量,每次执行间隔中的回调时,计数都会更新为1,而setInterval
函数会返回一个唯一的ID,稍后可以传递给clearInterval
以清除该特定间隔,通过使用您的号码覆盖该ID,唯一ID将丢失,并且间隔将不再被清除
$(window).load(function() {
var timerId =1;
timerCount = window.setInterval(function(){
timerId=timerId+1;
if(timerId=='3'){ alert(timerId); clearInterval(timerCount);}
}, 2000); });
您有两个同名的变量,请更改其中一个变量的名称以避免它们“冲突”。您所做的更改是什么?setInterval
不返回对象。您应该使用===
,因为3=='3'
是true
,但3=='3'
是false
。建议使用三重相等运算符,因为它还比较数据类型。Dude!考虑写下投票的评论…也许你可以解释<代码> SETIFATION/<代码>返回,这样就更清楚为什么原始代码不能工作了。@费利克林-呃,我至少可以试试!你能为我的上述问题给我一个好的标题吗?我会把它传给@FelixKling,因为我的英语(或标题)不太好。@adeneo:你认为我在这两个方面都更好吗P我可以试试。。。
$(window).load(function() {
var timerId =1;
timerCount = window.setInterval(function(){
timerId=timerId+1;
if(timerId=='3'){ alert(timerId); clearInterval(timerCount);}
}, 2000); });