私は非常に興味深い問題を抱えています。divに新しいSVG要素を追加すると、最初に追加が呼び出されたときにのみ、新しいsvg要素が表示されます。ハードコーディングすると機能しますが、マウスダウンで追加すると、HTMLファイルに追加されても表示されません。それはSVGの理解の問題であり、要素を動的に追加することはできないと思いますが、私はインターネットを見回していて、このテーマについて何も見つかりません。
$(document).mousedown関数で、新しい円がsvgホルダーに追加されていることがわかりますが、SVGホルダーに追加されても、Webページには表示されません。
コード:
HTML:
<div id="svgHolder">
<!--THIS CIRCLE SHOWS UP-->
<svg><circle cx='50' cy='50' r='40' stroke='black' stroke-width='1' fill='red' /></svg>
</div>
JQuery / JavaScript:
$(document).ready(function(){
var mouse={
x:0,
y:0,
drawing:false,
lastX:0,
lastY:0,
}
$(document).mousedown(function(e){
console.log('md')
mouse.x=e.clientX
mouse.y=e.clientY
mouse.drawing=true
//THIS CIRCLE WILL BE ADDED TO THE SVGHOLDER, BUT WILL NOT SHOW UP
$("#svgHolder").append("<svg><circle cx='"+mouse.x+"' cy='"+mouse.y+"' r='40' stroke='black' stroke-width='1' fill='red' /></svg>");
});
$(document).mouseup(function(e){
console.log('mu')
mouse.x=e.clientX
mouse.y=e.clientY
mouse.drawing=false
});
$(document).mousemove(function(e){
console.log('mm')
mouse.x=e.clientX
mouse.y=e.clientY
});
});