以前に起動された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'));
これは完璧に機能します