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

176
Visualizações
get all button elements dragged into div element

im trying to make any button elements can be dragged into a div. in the end i want to make sure that any new button i made can be dragged into a div. i tried using querySelectorAll to grab any element, but it doesn't work like expected. right now only one button can be dragged into a div. here is the code

let button = document.querySelector('button')
let div = document.querySelector('div')

// for button
button.addEventListener('dragstart', function (ev) {
  let lol = ev.dataTransfer.setData("text", 'button');
  console.log(lol)
})


// for div
div.addEventListener('dragover', function (ev) {
    ev.preventDefault()
})
div.addEventListener('drop', function (ev) {
  ev.preventDefault()
  ev.target.appendChild(document.querySelector('button'));
})
#div1 {
    width: 350px;
    height: 70px;
    padding: 10px;
    border: 3px solid #fff555;
}
  <div id="div1"></div><br>
    <button draggable="true">button one</button>
    <button draggable="true">button two</button>

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

You do need use querySelectorAll, and use forEach on the returned NodeList to attach the event handler to each button.

dataTransfer is then set with the appropriate id, which need to be added in the HTML.

This property is then read back in the drop event handler.

let buttons = document.querySelectorAll('button')
let div = document.querySelector('div')

// for button
buttons.forEach(button=>button.addEventListener('dragstart', function (ev) {
  let lol = ev.dataTransfer.setData("text", ev.target.id);
  console.log(ev.target.id);
}));


// for div
div.addEventListener('dragover', function (ev) {
    ev.preventDefault()
})
div.addEventListener('drop', function (ev) {
  ev.preventDefault()
  ev.target.appendChild(document.getElementById(ev.dataTransfer.getData("text")));
})
#div1 {
    width: 350px;
    height: 70px;
    padding: 10px;
    border: 3px solid #fff555;
}
  <div id="div1"></div><br>
    <button id='b1' draggable="true">button one</button>
    <button id='b2' draggable="true">button two</button>

about 4 years ago · Santiago Gelvez 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