此处找到答案的其他问题: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
}
答案 0 :(得分:0)
您需要检查最外层的数据,并在相同的代码中添加一个检查。或者您可以为ur数据集添加额外的属性(Say:level),并将其指定为(root)。您还需要为每个元素/文本添加标识符(id或类)。
已更新
.on("click", function (d) {
if(d.level == 'root')
d3.select("#ID").text(d.label);
});