La suppression de d3 éléments svg pour redessiner
J'espère que vous pourrez m'aider, parce que c'est me rend fou!
J'essayais donc de redessiner une svg à l'aide de d3. Dans mon code j'ai ajouter le svg à l'aide de:
d3.xml("Images/vertical_line.svg", "image/svg+xml", function(xml) {
var importedNode = document.importNode(xml.documentElement, true);
var svg = d3.select('#'+id+'_verticallinecontainer').node().appendChild(importedNode);
});
Lors de ma fonction de mise à jour est appelé, je puis procéder à la suppression de l'élément:
d3.select("#"+id+'_verticallinecontainer').remove();
Cela supprime le conteneur et l'élément. J'ai ensuite procéder à redessiner la svg à nouveau à l'aide du code ci-dessus.
Mon problème est que quand il ajoute le svg encore, il le fait deux fois et je ne comprends pas pourquoi! Il semble que d3 en quelque sorte des caches de la svg, l'ajouter à nouveau.
Espère que vous pouvez aider à effacer ce qui est faux, toute aide serait appréciée!
- Avez-vous essayé
d3.select(svg).remove()
à la place? - Devrait svg être le nom de l'élément que j'essaie de le supprimer?
- Non, la variable
svg
. - Hmm.. Ça ne fonctionne pas 🙁
- Pourriez-vous donner un exemple qui illustre le problème s'il vous plaît?
Vous devez vous connecter pour publier un commentaire.
VIOLON avec un petit exemple de l'ajout, la suppression et l'ajout de nouveau un SVG et un cercle. Espérons que cette aide.
J'ai eu un problème similaire à cela. retrait de l'élément SVG ne me permet pas de pleinement mettre à jour les données comme je le voulais.
Au lieu de cela, j'ai enlevé les éléments de g à l'intérieur du SVG avec cette ligne:
dans mon updateGraph() la fonction
Explication complète et une situation qui est montrée ici:
Repeindre/Rafraîchissement Graphique en D3