var s = selectAll().data();
s.enter()
.append();
//how is this different from:
var s = selectAll().data()
.enter()
.append();
当我第一次致电update()
时,data.links
和data.nodes
更新他们的x,y
就好了。
但svg元素甚至不愿意包含x,y
属性。
如果我再次加入数据links.selectAll("line").data(data.links);
,它似乎已经解决了#39;这个问题。
//full code here.
function update(){
link = links.selectAll("line")
.data(data.links); // NOTE: here I didn't chain data.
link.enter().append("line")
.style("stroke", function(d){return "#3498db";})
.style("opacity", 0.7)
.style("stroke-width", 1); //enter
link.exit().remove(); //exit
node = nodes.selectAll("circle")
.data(data.nodes); // NOTE: here I didn't chain data.
node.enter().append("circle")
.attr("r", 5)
.attr("fill", "#3498db")
.attr("id", function(d){return d.id;})
.call(d3.drag()
.on("start", dragstarted)
.on("drag", dragged)
.on("end", dragended)); //enter
node.exit().remove(); //exit
simulation
.nodes(data.nodes)
.on("tick", ticked);
simulation.force("link")
.links(data.links);
simulation.restart();
}