-
Notifications
You must be signed in to change notification settings - Fork 0
/
elenco.js
49 lines (38 loc) · 1.87 KB
/
elenco.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
document.addEventListener('DOMContentLoaded', function () {
const jogadoresCards = document.querySelectorAll('.jogadores-cards-item');
let origem = null;
// Função auxiliar para adicionar os event listeners aos elementos
function addEventListeners(element) {
element.draggable = true;
element.addEventListener('dragstart', (event) => {
// Armazena o id do elemento arrastado no dataTransfer
event.dataTransfer.setData('text/plain', event.target.id);
});
element.addEventListener('dragover', (e) => {
e.preventDefault();
});
element.addEventListener('drop', (e) => {
e.preventDefault();
// Recupera o id do elemento arrastado do dataTransfer
const idOrigem = event.dataTransfer.getData('text/plain');
const origem = document.getElementById(idOrigem);
// Usa o currentTarget para identificar o elemento de destino
const destino = e.currentTarget;
if (origem && origem !== destino) {
// Clona os elementos origem e destino
const cloneOrigem = origem.cloneNode(true); // passa true como parâmetro
const cloneDestino = destino.cloneNode(true); // passa true como parâmetro
// Substitui os elementos origem e destino pelos clones
origem.parentNode.replaceChild(cloneDestino, origem);
destino.parentNode.replaceChild(cloneOrigem, destino);
// Adiciona os event listeners aos clones
addEventListeners(cloneOrigem);
addEventListeners(cloneDestino);
}
});
}
jogadoresCards.forEach((jogadorCard) => {
// Adiciona os event listeners aos elementos iniciais
addEventListeners(jogadorCard);
});
});