【问题标题】:d3 collapsible tree: how to color only the label of clicked node?d3可折叠树:如何只为单击节点的标签着色?
【发布时间】:2016-06-17 17:17:54
【问题描述】:

我正在开发可折叠树图 (http://bl.ocks.org/mbostock/4339083)。 我会更改与单击节点相关的标签颜色。 我修改了代码

    // Toggle children on click.
  function click(d) {
  if (d.children) {
    d._children = d.children;
    d.children = null;
  } else {
    d.children = d._children;
    d._children = null;
  }
  update(d);
  }

宽度

    // Toggle children on click.
  function click(d) {
  if (d.children) {
    d._children = d.children;
    d.children = null;
  } else {
    d.children = d._children;
    d._children = null;
  }
  d3.select(this).select("text")
   .style("fill", "red")
  update(d);
  }

但我不知道如何记住之前点击的节点以将其标签恢复为黑色。

现在,如果我单击一个节点,标签文本会变为红色,因此任何其他节点都会被单击。我希望只有最后一个是红色的。有人可以帮我做吗?

【问题讨论】:

    标签: javascript d3.js


    【解决方案1】:

    一个简单的解决方案是为所有文本着色,然后为单击节点的文本着色:

    d3.selectAll("text")
         .style("fill", "black");
    
    d3.select(this).select("text")
        .style("fill", "red");
    

    检查小提琴:http://jsfiddle.net/gerardofurtado/f6xmzjbr/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多