我在停止之前触发的 setTimeout 函数时遇到问题。
我发现了一些相关问题,给出的解决方案是将 time_out 变量放在函数之外以使其工作。我试过了,但还是不行。
this.A = function(){
if(time_out) clearTimeout(time_out);
// time_out is nothing here and this will return error
time_out = setTimeout(function(){ }, 3000);
}
-------------------------------------------------
this.time_out = 0;
this.A = function(){
if(this.time_out) clearTimeout(this.time_out);
//will run through, but the setTimeout setup previously will keep running...
this.time_out = setTimeout(function(){ }, 3000);
}
更新
我厌倦了将整个功能放入一个元素中,并在重置时将其调用
if(el.data('time_out')) clearTimeout(el.data('time_out'));
这很完美