setTimeoutを停止させるための変数が全て同一だとして、一括停止させる方法はないでしょうか?
下記でいったら5の出力以降はsetTimeoutのキャンセルを行いたいです
前提条件としてはtimerID=setTimeoutは同じ変素名での宣言となります
必ず10回setTimeoutの予約(実行処理)を入れることです
if(i==5||i==6||i==7||i==8||i==9||i==10){
clearTimeout(timerID);
}
このような形は望んでいません
現在いくつ予約されているsetTimeoutがあるかわからない条件下で
timerIDで登録されたsetTimeoutを全て停止させたい
<div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> <div>10</div> <script> window.onload=function(){ div=document.querySelectorAll('div'); for(let i=0;i<div.length;i++){ timerID=setTimeout(function(){ console.log(div[i].innerText); },i*1000); if(i==5){ clearTimeout(timerID);//6だけ止まる 1 2 3 4 5 7 8 9 10と続く } } } </script>
回答1件
あなたの回答
tips
プレビュー