d3js,链式方法混乱

时间:2018-03-15 03:41:41

标签: d3.js

var s = selectAll().data(); 
s.enter()
  .append();

//how is this different from:

var s = selectAll().data()
  .enter()
  .append();

当我第一次致电update()时,data.linksdata.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();
}

0 个答案:

没有答案