前提・実現したいこと
JavaScriptのaddEventListenerを利用してhtmlのinputタグと紐づいたlabel要素にクリックイベントをつけようとしています。
発生している問題・エラーメッセージ
上記を実現すべく、labelにaddEventListenerを利用してクリック時の挙動を書いた際に、labelをクリックするとそれと紐づくinputにも動作が発生してしまい、1クリックで同じ処理が2回走ってしまっています。
該当のソースコード
html
1<label id="checkbox1" class="check_item" for="check_privacy"> 2<input type="checkbox" name="check_privacy" id="check_privacy"> 3</label><p> プライバシーポリシーに同意する</p>
JavaScript
1const checkbox1 = document.getElementById("checkbox1"); 2 3checkbox1.addEventListener('click', () => { 4 if (checkbox1.classList.contains("check_item") == true){ 5 checkbox1.classList.remove("check_item"); 6 checkbox1.classList.add("checked"); 7 } else { 8 checkbox1.classList.add("check_item"); 9 checkbox1.classList.remove("checked"); 10 }
上記のように条件分岐でまどろっこしく書いていますが、1クリック1動作であればtoggleで良さそうですね・・・。
よろしければお知恵拝借できますと幸いです!
回答1件
あなたの回答
tips
プレビュー