d3.js getBBox()。width返回0

时间:2016-04-29 13:09:17

标签: javascript jquery html css d3.js

我正在使用D3.js创建可折叠树。

我将文本元素后面的图像附加到树上。附加图像时,我想将节点的宽度设置为图像元素的x属性,以便图像在文本元素后面追加。我在上面使用了getBBox(),但它返回了我{x:0,y:0,width:0,height:0}

有关如何解决这个问题的任何建议吗?

相关代码:

nodeEnter.append("text").attr("x", function (nodeData) { return nodeData.children || nodeData._children ? x_pos = -10 : x_pos = 10; })
    .attr("dy", ".35em")
    .attr("text-anchor", function (nodeData) { return nodeData.children || nodeData._children ? "end" : "start"; })
    .text(function (nodeData) { return nodeData.name; })
    .style("fill-opacity", 1e-6);

nodeEnter.data(nodes).filter(function (nodeData) { return nodeData.icon ? nodeData.icon : null; }).append("image")
    .attr("xlink:href", function (nodeData) { return nodeData.icon ? nodeData.icon : null; })
    .attr("x", , function (nodeData) { return d3.select(this.parentNode).node().getBBox().width; )
    .attr("y", "-7px")
    .attr("width", "16px")
    .attr("height", "14px");    

0 个答案:

没有答案