如何在可折叠树的d3.js子项上添加click事件?

时间:2018-01-29 14:42:33

标签: javascript jquery d3.js

我使用d3.js作为here的可折叠树结构 enter image description here 现在我的目标是在最终的孩子上添加一个点击事件(即) A的儿子 A的女儿
例如,我需要在单击无子节点时创建警告框。

我试图在点击功能中添加一个条件,但它仅适用于我的第二次点击,而且我不知道为什么第一次点击时警报框没有起作用。

有人可以解释一下为什么会这样吗?什么是正确的方法呢?

MY CLICK FUNCTION

function click(d) {
if (d.children) {
    d._children = d.children;
    d.children = null;

  } else {
    d.children = d._children;
    d._children = null;
    if (d.children === null){
        alert(d.id);
    }
  }
update(d);
}

1 个答案:

答案 0 :(得分:1)

而不是使用

if (d.children === null){
    alert(d.id);
}

使用

if (!d.children){
    alert(d.id);
}

这是因为d.childrenundefined,但您正在检查null。由于undefinednull等同于false !d.children,检查将会成功。