Chciałbym utworzyć funkcję javascript, która może przyjąć ogólny wybór D3 i dołączyć duplikaty do obiektu SVG.D3: Dołącz duplikaty zaznaczenia
Oto przykład minimum pracy:
<!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 powiedział, że to było niemożliwe here ale to było jakiś czas temu.
Czy ktoś ma jakiekolwiek nowe przemyślenia na temat tego, jak można to osiągnąć? Pamiętaj, że wewnątrz funkcji clone_selection
nie mamy pojęcia, co element/y svg jest/są w x.
Szukasz czegoś takiego jak ['cloneNode'] (http://www.w3schools.com/jsref/met_node_clonenode.asp)? –
Potrzebujesz prawdziwego klonu, czy też elementy
Dzięki za oba komentarze. Jednak żadna z nich nie działa z ogólną selekcją D3. Więcej o tym rozmawia [tutaj] (https://github.com/mbostock/d3/pull/732#issuecomment-7390693), ale przypuszczam, że metoda selection.clone(), o której wspomniał Mike Bostock, nie została jeszcze zaimplementowana. – LondonRob