【问题标题】:Adding a toggle box to d3.js Indented Tree Graph向 d3.js 缩进树图添加切换框
【发布时间】:2012-07-02 21:11:11
【问题描述】:

是否可以在这个 d3.js 缩进树形图中的行中添加一个复选框? http://bl.ocks.org/1093025

【问题讨论】:

    标签: javascript d3.js


    【解决方案1】:

    svg 没有内置复选框,因此您需要使用确实存在的 svg 元素创建自己的复选框。

    我创建了一个JSFiddle,它使用circle 元素来执行此操作。为此,我采用了您链接的示例并添加了以下内容:

    // Add checkbox
    nodeEnter.append("svg:circle")
    .attr("r", 5)
    .attr("fill", "white")
    .on("click", function(d) {
        if (d.selected) {
            d.selected = false;
            d3.select(this).attr("fill", "white");
        } else {
            d.selected = true;
            d3.select(this).attr("fill", "black");
        }
    });
    

    要访问选定节点的列表,请添加以下函数并调用它

    function printSelectedNodes() {
      var nodes = tree.nodes(root);
    
      var selected = [];
      nodes.forEach(function(n, i) {
        if (n.selected) {
          selected.push(n.name);
        }
      });
      console.log(selected);
    }
    

    【讨论】:

    • 这绝对是甜蜜的。非常感谢。我唯一的问题是如何读取是否选择了切换?
    • 更新了小提琴和上面的代码,向您展示如何访问切换信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    相关资源
    最近更新 更多