Diskuze: Rendrování SVG po přidání nového prvku pomocí JS
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 2 zpráv z 2.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Hlavne je dobre nedat zadny kod k testovani, ze?
Zhlediska JS, prvek s id #svg je totez jako prvek s id #123.
U jquery vubec netusim, co ti to udela, ale append dela js appendChild, ne? To
je uspornejsi nez innerHTML. Ale asi u svg to tak uplne nefunguje. Tam bys musel
asi vyvolat nejake redraw podobne jako u canvasu.
Cili, bud bych to resil tak, ze do divu (#canvas) pridam novy svg element s
kodem. (needituji jako ty uz vyvoreny)
Nebo bych si kod svg ukladal do promene bokem a vykresloval pres html(str)
Tady asi resi neco podobneho.
https://stackoverflow.com/…s-for-redraw
<button id="update">Update</id>
<script>
var svg = d3.selectAll("body").append("svg");
svg.append("circle").attr("cx",20).attr("cy",20).attr("r",20).style("fill","red");
d3.select("#update")
.on("click",update);
function update() {
svg.remove();
svg = d3.selectAll("body").append("svg");
svg.append("circle")
.attr("cx",40)
.attr("cy",40)
.attr("r",20)
.style("fill","blue");
}
</script>
Zobrazeno 2 zpráv z 2.