[解決済み] setTimeout / clearTimeoutの問題点
2022-08-13 10:16:37
質問
私は、例えば10秒間の非アクティブ(ユーザーがどこにもクリックしない)の後、スタートページに移動するページを作ろうとします。私は残りのためにjQueryを使用しますが、私のテスト関数のセット/クリアは純粋なjavascriptです。
私の不満の中で、私はページ上の任意のクリックで呼び出すことができると期待した、この関数のようなものに行き着きました。タイマーは正常に開始されますが、クリックでリセットされません。関数が最初の10秒以内に5回呼び出された場合、5つの警告が表示されます...clearTimeoutはありません...
function endAndStartTimer() {
window.clearTimeout(timer);
var timer;
//var millisecBeforeRedirect = 10000;
timer = window.setTimeout(function(){alert('Hello!');},10000);
}
誰かトリックを行うコードのいくつかの行を持っていますか? - 任意のクリックでタイマーを停止、リセット、開始します。 - タイマーが例えば10秒になったら、何かをする。
どのように解決するには?
まず
timer
外側
の外側で定義します。そうでなければ、関数を呼び出すたびに新しい変数が作成されます。
var timer;
function endAndStartTimer() {
window.clearTimeout(timer);
//var millisecBeforeRedirect = 10000;
timer = window.setTimeout(function(){alert('Hello!');},10000);
}
関連
-
[解決済み] setTimeout(fn, 0)が役に立つことがあるのはなぜですか?
-
[解決済み] setTimeout()コールバックにパラメータを渡すにはどうすればよいですか?
-
[解決済み] setTimeoutかsetIntervalか?
-
[解決済み] 非同期関数+await+setTimeoutの組合せ
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] jQueryを使用して、すべてのクリックイベントハンドラを削除するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
-
[解決済み] アサインの左側にJavascriptのオブジェクトブラケット表記({ ナビゲーション } =)があります。
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] Reactコンポーネントでthis.setStateを複数回使用するとどうなりますか?
-
[解決済み] 無効になっている入力フィールドの値を送信する
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。