As mentioned previously, 기본 하이퍼 스크립트 언어로 Maquette를 사용하고 싶습니다. 결과적으로 나는 maquette.projector
을 사용하고 싶지 않습니다. 그러나 Maquette로 만든 SVG 객체를 DOM에 추가 할 수 있음에도 불구하고 DOM은 업데이트되지 않는 것처럼 보입니다. 예를 들어, 아래 코드에서 버튼을 클릭하여 원을 만들 수 있기를 기대합니다. Chrome Dev 도구를 사용하여 DOM을 검사하면 SVG circle 객체가 DOM에 추가 될 수 있지만 DOM은 업데이트되지 않습니다. DOM을 어떻게 업데이트해야합니까?Maquette가 DOM을 수정 한 후 DOM을 업데이트하는 방법
var h = maquette.h;
var dom = maquette.dom;
var svg;
var svgNode;
var root;
var rootDiv;
function addCircle(evt) {
console.log("adding circle");
const c = h('g', [
h('circle#cool.sweet', {cx: '100', cy: '100', r: '100', fill: 'red'}),
]);
const g = dom.create(c).domNode;
svgNode.appendChild(g);
}
document.addEventListener('DOMContentLoaded', function() {
svg = h('svg', {styles: {height: "200px", width: "200px"}})
rootDiv = h('div.sweet', [
svg,
]);
root = dom.create(rootDiv).domNode;
document.body.appendChild(root);
svgNode = root.querySelector("svg");
const button = h('button', {
onclick: addCircle,
}, ["Add circle"]);
const buttonNode = dom.create(button).domNode;
root.appendChild(buttonNode);
});
<script src="//cdnjs.cloudflare.com/ajax/libs/maquette/2.4.1/maquette.min.js"></script>
왜 appendChild
아무것도 렌더링되지 않는 이유는 무엇입니까?