2013-11-26 146 views
1

我有以下代码:现在添加在d3.js节点“三角式”

var nodeEnter = node.enter().append("svg:g") 
       .attr("class", "node") 
       .attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; }) 
       .on("click", function(d) { toggle(d); update(d); }); 

      nodeEnter.append("svg:circle") 
       .attr("r", 1e-6) 
       .style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }); 

      nodeEnter.append("svg:text") 
       .attr("x", function(d) { return d.children || d._children ? -10 : 10; }) 
       .attr("dy", ".35em") 
       .attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; }) 
       .text(function(d) { 
       if (d.size != undefined) { 
        return d.name + " :: " + d.size + " :: " + d.diff_day; 
       } else { 
        return d.name; 
       } 
       }) 
       .style("fill-opacity", 1e-6) 
       .style("font-size", "15px"); 

      nodeEnter.append("svg:path").attr("d", d3.svg.symbol.type("triangle-up").style("fill", "black")); 

,问题是,SVG:圈子和SVG:文本来了罚款。但是“d3.svg.symbol.type(”triangle-up“)。style(”fill“,”black“));”似乎没有工作。任何帮助,将不胜感激......

+0

它是如何工作的?你有没有收到任何错误信息? –

回答

2

您不能设置符号属性的属性创建本身是这样的:

nodeEnter.append("svg:path") // Wrong. 
    .attr("d", d3.svg.symbol.type("triangle-up").style("fill", "black")); 

你必须先设置d属性,然后设置风格fillpath

nodeEnter.append("svg:path") // Fixed. 
    .attr("d", d3.svg.symbol().type("triangle-up")) 
    .style("fill", "black");