Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

98
Visualizações
Can't remove body class previosly added with click event

I'm missing something, probably related with bind, but I can not see what and where. I can add a class to a body tag, but I can not remove it latter.

const add_body_class = document.querySelectorAll('.btn-add-class');

add_body_class.forEach(item => {
  item.addEventListener('click', event => {
     document.body.classList.add('foobar');
  })
});

const remove_body_class = document.querySelectorAll('.btn-remove-class');

remove_body_class.forEach(item => {
  item.addEventListener('click', event => {
     // this doesn't work
     document.body.classList.remove('foobar');
     // click event works
     console.log("clicked");
  })
});

BTW I need to use multiple selectors and document.querySelectorAll because of multiple instances, and I can not change any of HTML code.

Any help would be appreciated!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

It works fine for me, I just wrapped it inside a DOMContentLoaded listener.

<!DOCTYPE html>
<html>

<body>
<button class="btn-add-class">Add</button>
<button class="btn-add-class">Add</button>
<button class="btn-add-class">Add</button>
<hr>
<button class="btn-remove-class">Remove</button>
<button class="btn-remove-class">Remove</button>
<button class="btn-remove-class">Remove</button>
</body>
<style>
.foobar{
  background-color: yellow;
  }
</style>
<script>
document.addEventListener("DOMContentLoaded", () => {
const add_body_class = document.querySelectorAll('.btn-add-class');

add_body_class.forEach(item => {
  item.addEventListener('click', event => {
     document.body.classList.add('foobar');
     console.log("added");
  })
});

const remove_body_class = document.querySelectorAll('.btn-remove-class');

remove_body_class.forEach(item => {
  item.addEventListener('click', event => {
     // this doesn't work
     document.body.classList.remove('foobar');
     // click event works
     console.log("removed");
  })
});
})
</script>

</html>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda