class dragndrop { static htmlId = ''; static html = ''; init = function() { let elems = document.getElementsByClassName(this.tableClass); var j = 1; for (var i = 0; i <= elems.length; i++) { if (elems[i]) { let att = document.getElementById(this.tableId + j); if (att) { elems[i].setAttribute("draggable", true); elems[i].addEventListener('drag', (event) => { this.drag(event); }); } } j++; } } drag = function(event) { let xy = document.elementFromPoint(event.clientX, event.clientY).parentNode; if (event.target.parentNode == xy.parentNode) { if(xy == event.target.nextSibling) { xy = xy.nextSibling; } event.target.parentNode.insertBefore(event.target, xy); } this.end(); } end = function(e) { let elems = document.getElementsByClassName(this.tableClass); let j = 1; for (var i = 0; i < elems.length; i++) { let ordering = elems[i].getAttribute('id').split(this.tableId).toString(); ordering = ordering.replace(',', '').toString(); document.getElementById(this.inputId + j).value = ordering + ':' + i; j++; } } }