svg に円を動的に追加する必要があります。ここでは、svg に正しく追加されていますが、正しい位置ではありません。ここでは、svg 内に円を作成し、svg をクリックして新しい円を追加して x と y の位置を取得します。画面からclientXとclientYの位置を正しく取得していますが、新しく追加された円は正しい位置に正しく追加されていません。選択した位置の svg に新しい円を追加する必要があります。
これがデモです。
var xpos, ypos;
$("svg").click(function (e) {
xpos = e.clientX;
ypos = e.clientY;
alert(xpos+' '+ypos);
});
$("#create").click(function (e) {
var svgNS = "http://www.w3.org/2000/svg";
var myCircle = document.createElementNS(svgNS, "circle");
myCircle.setAttributeNS(null, "id", "mycircle");
myCircle.setAttributeNS(null, "fill", 'blue');
myCircle.setAttributeNS(null, "cx", xpos);
myCircle.setAttributeNS(null, "cy", ypos);
myCircle.setAttributeNS(null, "r", '6');
myCircle.setAttributeNS(null, "stroke", "none");
var svg = document.querySelector("svg");
svg.appendChild(myCircle);
});
任意の提案をいただければ幸いです。