javascript - 标签上的单击事件未触发(类不会更改)

标签 javascript html css

标签内有一个复选框。我在标签中添加了点击事件的事件监听器,以便触发类。

当我点击复选框时它确实有效。

但是,如果我单击标签,则没有任何变化。为什么会这样,考虑到事件绑定(bind)到标签而不是复选框?

const formCheck = document.querySelector('.drinos-checker')

formCheck.addEventListener('click', function () {
    formCheck.classList.toggle('checkerActive')
})
.checkerActive {
  background-color: red;
}
   <label class="drinos-checker"><input class="drinos-checkbox" type="checkbox" name="checkbox" value="value">Renovation</label>

最佳答案

不要将点击事件添加到label,而是将其添加到input元素-

const formCheck = document.querySelector('.drinos-checker');
const inputCheck = document.querySelector('input');

inputCheck.addEventListener('click', function() {
  formCheck.classList.toggle('checkerActive')
})
.checkerActive {
  background-color: red;
}
<label class="drinos-checker"><input class="drinos-checkbox" type="checkbox" name="checkbox" value="value">Renovation</label>

关于javascript - 标签上的单击事件未触发(类不会更改),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71796334/

相关文章:

javascript - 如何在 Javascript 中 .focus() 一个 .srcElement/childNode

javascript - 在 Rails 中使用 bootstrap-sass,Bootstrap/Javascript 不工作

javascript - 为什么我无法使用 codeigniter 访问外部 javascript 文件,即使它们已加载?

javascript - 破解复选框值

javascript - 在显示隐藏元素时,由于滚动,它显示在错误的位置,仅在 chrome 中

html - tabpane 内的行

css - 将动画添加到 flex-wrap

css - Bootstrap 模态背景 css

css - Firefox 3 为显示 :inline-block 的跨度添加间距

JavaScript eval ("{}") 返回行为?