Mi piacerebbe creare una funzione javascript che può richiedere una selezione D3 generica e aggiungerne i duplicati a un oggetto SVG.D3: Aggiungi duplicati di una selezione
Ecco un esempio di lavoro minima:
<!DOCTYPE html>
<meta charset="utf-8">
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
svg = d3.select("body").append("svg")
.attr("width", 300)
.attr("height", 300);
circle = svg.append("circle")
.attr("cx", 100)
.attr("cy", 100)
.attr("r", 20)
function clone_selection(x, i) {
for (j = 0; j < i; j++) {
// Pseudo code:
// svg.append(an exact copy of x, with all the attributes)
}
}
clone_selection(circle, 5);
</script>
Mike Bostock ha detto che questo era impossibile here, ma che era un po 'indietro.
Qualcuno ha qualche idea nuova su come questo potrebbe essere raggiunto? Ricorda, all'interno della funzione clone_selection
non abbiamo idea di quale elemento/i di svg sia/siano in x.
Stai cercando qualcosa come ['cloneNode'] (http://www.w3schools.com/jsref/met_node_clonenode.asp)? –
Hai bisogno di un vero clone o gli elementi
Grazie per entrambi i commenti. Tuttavia, nessuno di questi funziona con una selezione D3 generica. C'è più conversazione su questo [qui] (https://github.com/mbostock/d3/pull/732#issuecomment-7390693) ma suppongo che il metodo selection.clone() menzionato da Mike Bostock non sia stato ancora implementato. – LondonRob