Why doesn't this dnd work?

You may remember my similar code , I am still hung up on code .
With code below; Eventually I will be Creating many elems ,
so I want to keep Function whoClickedMe(e) as is .
Function dragElement(elmnt) works fine when an elem is clicked , but it does not continue on to actually DnD .
Pls , how can this be corrected ?

<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<style>
#elemContainer {
    position: absolute;  width: 1420px; height: 750px;  display:inline-block; 
}


#elem1 {
    border-radius: 50%; width:32px; height:32px; float:left; left: 30%; top:0; background-color: #FF0004;
}

#elem2 {
    border-radius: 50%; width:32px; height:32px; float:left; left: 31%;  top: 0; background-color: #FE8E05;
}

img {
    margin: 5px;
    padding: 5px 8px;
    outline: none;
    border: none;
    color: white;
    font-size: 1em;
}

div:hover {
//    background-color: #ffa000;
    cursor: pointer;
}

#result {
  border:1px solid; 
  display:inline-block;
  margin:5px;
/*   padding:5px; */
}
</style>
</head>
<body>

<div id="elemContainer" style="">

  <div class="item" id="elem1" draggable="true" style="">&nbsp;1</div>
 
 <div class="item" id="elem2" draggable="true" style="">&nbsp;2</div>
 
 </div>  <!--   id="elemContainer"  -->

<div id="result">result = </div>

<script>
var e ;
var elmnt ;
var eventHold ;
var holdTargetId ;
var holdTarget ;

var theParent = document.querySelector("#elemContainer");
theParent.addEventListener("click", whoClickedMe, false);
 
function whoClickedMe(e) {
    if (e.target !== e.currentTarget) {
        holdTarget = e.target.id;
        holdTargetId = e.target.id;
        console.log("div clicked on = " + holdTarget);
	  dragElement(holdTargetId) ;		
    }
    e.stopPropagation();
}
</script>

<script>

function dragElement(elmnt) {
console.log("function dragElement() = "  + elmnt) ;
  var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;

   elmnt.onmousedown = dragMouseDown;


  function dragMouseDown(e) {
    e = e || window.event;
console.log("function dragMouseDown = " + e.target.id) ;
    e.preventDefault();
    
    // get the mouse cursor position at startup:
    pos3 = e.clientX;
    pos4 = e.clientY;
    document.onmouseup = closeDragElement;
    // call a function whenever the cursor moves:
    document.onmousemove = elementDrag;
  }

  function elementDrag(e) {
    e = e || window.event;
    e.preventDefault();
console.log("function elementDrag(e)") ;

    // calculate the new cursor position:
    pos1 = pos3 - e.clientX;
    pos2 = pos4 - e.clientY;
    pos3 = e.clientX;
    pos4 = e.clientY;
    // set the element's new position:
    elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
    elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
  }

  function closeDragElement() {
    /* stop moving when mouse button is released:*/
console.log("function closeDragElement()")
    document.onmouseup = null;
    document.onmousemove = null;
  }
}
</script>

</body></html>

Thanks for your Help…

No answers , Nevermind then
I’ll try a different approach :
https://www.sitepoint.com/community/t/els-foreach-name-is-name-a-function/408624

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.