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

206
Visualizações
How can I make my dropdown menu close when clicking anywhere on the page (javascript)

I have made a dropdown that opens when the user clicks into the input field, however I want to be able remove the active class so the dropdown disappears when a user clicks anywhere else on the page. Here is my code:

// menu dropdown
    const searchInput = document.querySelector('.search-input');
    const dropdown = document.querySelector('.dropdown-container');

    searchInput.addEventListener('click', () => {
      dropdown.classList.add('dropdown-container--active')
    })

    window.addEventListener('click', function(e) {
      if (!searchInput.contains(e.target) && (!dropdown).contains(e.target)) {
        dropdown.classList.remove('dropdown-container--active')
      }
    })
        <ul>
          <li>
            <input data-target="volts" type="text" placeholder="Volts" class="search-input">
            <ul class="dropdown-container">
              <h5 class="volt-options-title">Top Searches</h5>
                <li>
                  <a href="#" class="volt-options">6</a>
                </li>
                <li>
                  <a href="#" class="volt-options">12</a>
                </li>
                <li>
                  <a href="#" class="volt-options">24</a>
                </li>
                <li>
                  <a href="#" class="last-link">48</a>
                </li>
            </ul>
          </li>
        </ul>

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

0

You can make use of the focusout event. Add a listener and remove the active class when the user leaves the search input. As shown below:

searchInput.addEventListener('focusout', (event) => {
  dropdown.classList.remove('dropdown-container--active')
});

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