実現したいこと
JavaScript ボタンタグをクリックされたときにクリックされたボタンにクラスを追加したい
JavaScript ボタンタグをクリックされたときにクリックされたボタンにクラスを追加するような仕組みを作っています。
ボタンをクリックしてクラスを追加したり削除することはできました。しかし、ボタンを複数回連続してクリックすると3秒後にクラスが外れる挙動になりません。
該当のコードは以下のようなコードです
該当のコード
HTML
1<button><span class="default">ボタン1</span><span class="clicked">ボタン1クリック</span></button> 2<button><span class="default">ボタン2</span><span class="clicked">ボタン2クリック</span></button> 3<button><span class="default">ボタン3</span><span class="clicked">ボタン3クリック</span></button>
CSS
1button { 2 padding: 30px; 3} 4 5.clicked { 6 display: none; 7} 8 9.button-clicked .default { 10 display: none; 11} 12 13.clicked { 14 display: none; 15} 16 17.button-clicked .clicked { 18 display: block; 19}
JavaScript
1// ボタンの要素を取得 2const buttons = document.querySelectorAll('button'); 3 4// ボタンがクリックされた時の処理を定義 5function handleClick(event) { 6 const button = event.currentTarget; 7 // "clicked"クラスを追加 8 button.classList.add('button-clicked'); 9 // 3秒後に"clicked"クラスを削除 10 setTimeout(() => { 11 button.classList.remove('button-clicked'); 12 }, 3000); 13} 14 15// 各ボタンに対してクリックイベントのリスナーを登録 16buttons.forEach(button => { 17 button.addEventListener('click', handleClick); 18});
それぞれのボタンに対してボタンがクリックされたら3秒後にclickedクラスが削除されるようにしたいのですが、お心優しい方ご教授いただければと思います

回答1件
あなたの回答
tips
プレビュー