JavascriptでsetTimeoutを使いたい
クリックすると数秒後に関数が実行され、その秒数が立つ前にもう一度クリックすると関数がキャンセルされるようなコードを作りたいです。
javascript
1if (bool) { 2 const timer = setTimeout(func, time); 3} else { 4 clearTimeout(timer); 5}
(boolにはクリックするごとにtrueとfalseが反転しながら入ります。)
このコードはスコープの問題でうまく動きませんでした。
スコープの問題を解決した以下のコードを試してみましたが、うまく動きません。
javascript
1let timer; 2if (bool) { 3 timer = setTimeout(func, time); 4} else { 5 clearTimeout(timer); 6}
どうすれば実装できますか。プログラミング初心者なので教えていただけると嬉しいです。
> うまく動きません。
どのような操作をしたとき、どのような動作を想定したが、実際にはどのような動作になりエラー等が出るならそれはどのような内容なのか……を書きましょう。
また実際に問題が再現できるコードを提示しましょう。
あなたが提示したコードを利用して「クリックすると数秒後に関数が実行され、その秒数が立つ前にもう一度クリックすると関数がキャンセルされる」プログラムを動作させることは可能なので、提示されていない部分に問題があると思われます。
回答1件
あなたの回答
tips
プレビュー