ClearInterval 只工作一次

ClearInterval works only one time

有人可以帮我处理这段代码吗?间隔不会停止,我看不出我做错了什么。当我第一次点击 link 间隔时停止,第二次他们通过所有三个。

if(location_type == 'friends'){ 
    GetReactionCount(location_type,'0',limits);
    intervals1 = setInterval(function() {
    GetReactionCount(location_type,'0',limits);
    }, 10000);
    return
        }else
    if(location_type != 'friends'){ clearInterval(intervals1); }    

    if(location_type == 'neighborhood'){
         GetReactionCount(location_type,postcode,limits);
         intervals2 = setInterval(function() {
        GetReactionCount(location_type,postcode,limits);
         }, 10000);
        return
        }else
    if(location_type != 'neighborhood'){clearInterval(intervals2); }

    if(location_type == 'city'){
         GetReactionCount(location_type,stad,limits);
         intervals3 = setInterval(function() {
        GetReactionCount(location_type,stad,limits);
         }, 10000);
        return
        }else
    if(location_type != 'city'){clearInterval(intervals3); }

您有三个可能的间隔,存储在 intervals1intervals2intervals3 中。每次调用此代码时,您只会停止其中一个间隔,因此如果第二次调用此代码时,其他两个间隔之一是 运行,那么它将保持 运行,您将开始另一个,因此您将有两个或更多间隔运行。

如果您只想让一个区间成为 运行,则只将一个区间存储在一个变量中,并在开始一个新区间之前停止该区间。或者,如果您需要所有三个区间变量,则创建一个简短的小函数,在开始新变量之前对所有三个变量调用 clearInterval()