小编Fro*_*odo的帖子

节点删除的D3更新总是删除SVG DOM中的最后一个条目

我在我的D3应用程序中看到一种奇怪的行为,经过数小时的努力弄清楚发生了什么,我希望有人能指出我明显做错的事情.

我已经将应用程序简化为非常简单并仍然表现出问题.正如你所看到的那样,它源于所有伟大的D3例子.我遇到的一个简单场景是:选择一个节点(通过点击它),并在点击删除键时删除所述节点以及节点和链接的所有相关链接和标签.

下面粘贴的代码几乎就在那里,因为它完全按预期减少了节点和链接的数量(给定任何特定的图形),但有一个问题:节点和链接标签都不正确,最终分布在不同的圆圈上. ..

任何关于可能发生的事情的想法都将不胜感激!

码:

var width = 960,
    height = 700,
    colors = d3.scale.category20();

var svg = d3.select("body").append("svg")
    .attr("width", width)
    .attr("height", height);

var force = d3.layout.force()
    .gravity(.05)
    .distance(200)
    .charge(-150)
    .size([width, height]);

var jsonnodes, jsonlinks;
var node, link, label;
var selected_node = null,
    mousedown_node = null,
    mousedown_link = null;

d3.json("graph.json", jsondatacallback);


//
// Functions
//

function jsondatacallback(error, json) {
jsonnodes = json.nodes;
jsonlinks = json.links;
force.nodes(jsonnodes)
        .links(jsonlinks);

//
// Nodes
//
node = svg.selectAll(".node")
        .data(jsonnodes);    
node.enter().append("g")
        .attr("class", "node")
        .on('mousedown', …
Run Code Online (Sandbox Code Playgroud)

javascript svg labels d3.js

5
推荐指数
1
解决办法
1674
查看次数

标签 统计

d3.js ×1

javascript ×1

labels ×1

svg ×1