- table添加类
.draggable-items - 将可拖动的
tr写到tbody中 - 添加下面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
48var cloneEl = null
var currentDragEl = null
var parentNode = document.querySelector('.draggable-items tbody')
var trs = parentNode.querySelectorAll('tr')
trs.forEach(function (el, index) {
el.setAttribute('draggable', true)
el.orSeq = index
el.index = index
el.onmousedown = function (event) {
cloneEl = el.cloneNode(true)
parentNode.insertBefore(cloneEl, el)
cloneEl.index = el.index
el.style.display = 'none'
currentDragEl = el
cloneEl.onmouseup = currentDragEl.onmouseup = function (event) {
currentDragEl.index = cloneEl.index
parentNode.removeChild(currentDragEl)
parentNode.insertBefore(currentDragEl, cloneEl)
parentNode.removeChild(cloneEl)
currentDragEl.style.display = 'table-row'
}
}
el.ondragover = function (event) {
var nowElIndex = el.index
if (el.index > cloneEl.index) {
parentNode.removeChild(cloneEl)
for (let i = cloneEl.index + 1; i <= el.index; i++) {
el.index = el.index - 1
}
if (parentNode.lastChild === el) {
parentNode.appendChild(cloneEl)
} else {
parentNode.insertBefore(cloneEl, el.nextSibling)
}
cloneEl.index = nowElIndex
} else if (el.index < cloneEl.index) {
for (let i = el.index; i < cloneEl.index; i++) {
el.index = el.index + 1
}
parentNode.removeChild(cloneEl)
parentNode.insertBefore(cloneEl, el)
cloneEl.index = nowElIndex
}
}
})