d3.js双层分区 - 单击最外层环时截断文本条件

时间:2016-06-13 08:39:41

标签: javascript d3.js

此处找到答案的其他问题:Truncate text in d3

.text(function (d) {
 if(d.name.length > 5)
     return d.name.substring(0,5)+'...';
 else
     return d.name;                       
 });

我想添加一个条件,如果文本是bilevel partition chart最外圈中的标签,则不再截断文本。

可能的解决方案是添加以下内容:如果单击最外环,则重绘文本。

编辑:对不起,我忘了提到只有在点击最外圈时才会出现这种情况。因此,最初文本被截断,当最外圈放大时,截断将被删除。

inside function click(d):
    if d.depth >= 3 {
        modify firstLine, remove code that shortens the text
    }
    else if other d.depth is clicked { 
        keep/revert back to the same code
    }

1 个答案:

答案 0 :(得分:0)

您需要检查最外层的数据,并在相同的代码中添加一个检查。或者您可以为ur数据集添加额外的属性(Say:level),并将其指定为(root)。您还需要为每个元素/文本添加标识符(id或类)。

已更新

.on("click", function (d) {
 if(d.level == 'root')
     d3.select("#ID").text(d.label);
 });