I'm having trouble adding an EventListener to a image witch are created dynamically.
Here is the code I'm having trouble with:
Code:var dotNr = 0; function addDot() { var img = document.createElement("img"); img.src = "imageOverlay_files/dots/d9.png"; img.id = "d"+dotNr; img.draggable = "false"; //img.onmousedown = "mouseDownDrag(\'d0'\)"; //img.onmousedown = "mouseDownDrag(\'d" + dotNr + "\')"; var src = document.getElementById("header"); src.appendChild(img); document.getElementById("d"+dotNr).setAttribute('draggable', false); var mouseDownDragString = "mouseDownDrag(\'d"+dotNr+"\')"; document.getElementById("d"+dotNr).addEventListener("mousedown", eval(mouseDownDragString)); dotNr = dotNr + 1; }
Here is my entire code:
HTML Code:<!DOCTYPE html> <html> <head> <title>Title of the Document</title> </head> <body> <button onclick="addDot()">Add dot</button> <div id="header"></div> <p id="myP2" onmousedown="mouseDownDrag('myP2')" onmouseup="mouseUp()"> Click the text 2! </p> <img src="imageOverlay_files/dots/d9.png" alt="x" id="d10" class="dots" draggable="false" onmousedown="mouseDownDrag('d10')"/> <img src="imageOverlay_files/dots/d9.png" alt="x" id="d11" class="dots" draggable="false" onmousedown="mouseDownDrag('d11')"/> <script> function mouseDownDrag(dragTargetId) { dragTarget= document.getElementById(dragTargetId); //dragTarget.style.color = "red"; dragTarget.style.position = 'absolute'; dragTarget.style.zIndex = 1000; // move it from any existing parents directly to the body // to position it relative to the body document.body.append(dragTarget); // and put this absolutely positioned text under the pointer moveAt(event.pageX, event.pageY); // centers the text on the coordinates (pageX, pageY) function moveAt(pageX, pageY) { dragTarget.style.left = pageX - dragTarget.offsetWidth / 2 + 'px'; dragTarget.style.top = pageY - dragTarget.offsetHeight / 2 + 'px'; } function onMouseMove(event) { moveAt(event.pageX, event.pageY); } // move the text on mousemove document.addEventListener('mousemove', onMouseMove); // drop the text, remove unneeded handlers onmouseup = function() { document.removeEventListener('mousemove', onMouseMove); dragTarget.onmouseup = null; }; } var dotNr = 0; function addDot() { var img = document.createElement("img"); img.src = "imageOverlay_files/dots/d9.png"; img.id = "d"+dotNr; img.draggable = "false"; //img.onmousedown = "mouseDownDrag(\'d0'\)"; //img.onmousedown = "mouseDownDrag(\'d" + dotNr + "\')"; var src = document.getElementById("header"); src.appendChild(img); document.getElementById("d"+dotNr).setAttribute('draggable', false); var mouseDownDragString = "mouseDownDrag(\'d"+dotNr+"\')"; document.getElementById("d"+dotNr).addEventListener("mousedown", eval(mouseDownDragString)); dotNr = dotNr + 1; } </script> </body> </html>




Reply With Quote